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

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

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

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

Q&A

解決済

2回答

150閲覧

宣言の仕方の違いについて

hikaru1196

総合スコア21

Swift

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

0グッド

0クリップ

投稿2017/12/09 13:04

swift

1var hoge:String 2var hoge2:String = String()

このふたつはどう違うのでしょうか?

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

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

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

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

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

guest

回答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

xAxis

総合スコア1349

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

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

0

ベストアンサー

Swift

1var hoge:String

これは変数の型を宣言しただけです。
どこかでインスタンスを代入する必要があります。
また、Swiftの場合、オプショナル型という考えがあるので、
上記の場合は対象のクラスの初期化(init)時に代入されなければなりません。
初期化時に代入されないのであれば型指定をString?やString!と指定する必要があります。

Swift

1var hoge2:String = String()

こちらは型指定とともにインスタンスを代入しています。
また、初期化するインスタンスと変数名が同じ方であれば以下のように省略もできます。

Swift

1var hoge2 = String()

投稿2017/12/09 13:34

nakasho_dev

総合スコア2655

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

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

xAxis

2017/12/09 13:44

被っちゃいました。すいません。
nakasho_dev

2017/12/09 14:41

いえいえ、よくあることだと思います。回答者が多いのは良いことですし。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問