swift
1var hoge:String 2var hoge2:String = String()
このふたつはどう違うのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
一言で言うなら初期化の有無ですかね。
var hoge:String
これは変数を宣言しただけですね。この状態ではまだ使えません。
printしようとすると分かるのですが"Variable 'hoge' used before being initialized"と怒られちゃいます。要初期化です。
var hoge:String print(hoge) //Variable 'hoge' used before being initialized
なので
hoge = "fuga" print(hoge) // "fuga"
なんて感じでString型の値を入れてあげると使えるようになります。
対して
var hoge2:String = String()
こちらは変数hoge2をString型で宣言したと同時に初期化してます。
なので
print(hoge2) // ""
となります。
投稿2017/12/09 13:43
総合スコア1349
0
ベストアンサー
Swift
1var hoge:String
これは変数の型を宣言しただけです。
どこかでインスタンスを代入する必要があります。
また、Swiftの場合、オプショナル型という考えがあるので、
上記の場合は対象のクラスの初期化(init)時に代入されなければなりません。
初期化時に代入されないのであれば型指定をString?やString!と指定する必要があります。
Swift
1var hoge2:String = String()
こちらは型指定とともにインスタンスを代入しています。
また、初期化するインスタンスと変数名が同じ方であれば以下のように省略もできます。
Swift
1var hoge2 = String()
投稿2017/12/09 13:34
総合スコア2655
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。