質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

解決済

1回答

396閲覧

swiftの文字列のvar name:String? = ""について

退会済みユーザー

退会済みユーザー

総合スコア0

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

0クリップ

投稿2018/09/02 07:26

編集2018/09/02 07:38

下記のソースでわからない部分があります。アドバイスを頂けると幸いです。

import UIKit class OmikuziViewController: UIViewController { //前のページから名前を受け取るための変数 var name:String? = "" //おみくじの結果を配列に格納 var result:[String] = ["大吉", "中吉", "小吉", "凶"] //名前とおみくじの結果を表示させるためのlabelを、Controllerと紐付ける @IBOutlet weak var nameLabel: UILabel! @IBOutlet weak var resultLabel: UILabel! //viewDidLoadはページが表示された時に実行される override func viewDidLoad() { super.viewDidLoad() //受け取ったnameにnilが入っていないかチェックをする if let name = name { //nilが入っていなかった場合、Labelに名前を表示させる nameLabel.text = name + "さん" } //ランダムな数値0〜3を取得、結果に応じて配列からおみくじの値を表示させる let num = Int(arc4random_uniform(4)) resultLabel.text = "(result[num])です!" } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } }
var name:String? = ""

この文字列の変数ですが、nameは変数なのはわかるのですが、その後の

:String?=""

これの**:String?はどんな意味があるのでしょうか?
ビックリマークは否定の意味で使われる事がありますが、それが関係しているのでしょうか。
そしてnameの変数のあとに
String?**をつける意味を教えて下さい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

?はオプショナル型と言って、その変数の値がnilになることができるのを示しています。
String? は値として文字列、またはnilを持つことができます。
オプショナル型の変数を使用する場合は、

if let name = name

とnilでないことを確認するか、name!のようにnilでないことを明示しないといけません。
型に?がつかなかったら name = nil はコンパイルエラーになります。

このへんが参考になるかと。

投稿2018/09/02 07:49

編集2018/09/02 07:52
toki_td

総合スコア2850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/09/02 07:54

ありがとうございます。オプショナル型というのですね。普通に検索で?とかビックリマークとして検索していて中々出てきませんでしたので質問させていただきました。そしてコンパイルエラーになることも理解しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問