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

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

ただいまの
回答率

90.60%

  • Swift

    7040questions

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

swift使ってみての感想を教えてください

解決済

回答 1

投稿

  • 評価
  • クリップ 5
  • VIEW 1,248

h_sakurai

score 259

swiftはまだ使っていないのですが、swiftの使い心地とか、
良い点、悪い点を教えてください。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+5

仕様の変更が著しいのでこの先どうなるか不明ですが、現状まで(beta4)における個人的な感想です。

好意が持てる点
  • mutable と immutable なオブジェクトを var と let で書き分けられる(主にswfitの配列と辞書).
  • 型推定のおかげでタイプする量が減りそう(enumとか変数宣言時とか)
  • extension により既存機能の拡張がしやすい.
  • オプショナルチェイニング(foo?.bar() みたいなの)は便利
  • プロパティ変更の監視が簡単になった(willSetとdidSet)
  • NSObjectを継承せずにクラスが作れる(今のところ、特に良いことはないけど)
  • objective-cのようにクラスにプレフィクスを付けずに済む(モジュール単位で名前空間が独立)
  • cocoaとの連携が考慮されているので、delegateパターンなど既存の作法はそのまま使える.

ちょっと気になる点
  • 良くも悪くも型にうるさくなった(objective-cが緩すぎただけという説もある)
  • マルチスレッド環境を考慮した機能がない(プロパティの atomic や、@synchronizedなど)ため、自分で制御する必要がある
  • オプショナルチェイニングは便利だが参照と呼び出ししかできず、値の代入には使えない(foo?.baz = 10 は駄目. foo!.baz = 10 は可. ただしfooがnilだとランタイムエラーになるので下記のバインディングを使ったりする)
  • オプショナルバインディング( if let foo = bar?.baz {} みたいなの)のせいでif文が多くなる気がする
  • NSObjectから performSelector~系の機能がなくなった(ディレイ実行 -> キャンセルのようなことが手軽にできない)
  • 仕様変わり過ぎ(……まだbetaなので)

(オプショナルなどの意味は言語リファレンスを参照してください)

[UPDATE]

  • beta5から、オプショナルチェイニング経由で値の設定が可能になった(foo?.baz = 10はOK). さらに成功したかどうかを判定できる.

if (foo?.baz = 10) != nil {
    // set successfully
} else {
    // failed
}

よって、下記は解消
- オプショナルチェイニングは便利だが参照と呼び出ししかできず、値の代入には使えない(foo?.baz = 10 は駄目. foo!.baz = 10 は可. ただしfooがnilだとランタイムエラーになるので下記のバインディングを使ったりする)

相変わらず、仕様の変更は続く……

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2014/08/21 17:16

    beta版のアップデートの情報ありがとうございます!僕もSwift弄っているのですが、アップデートの度にどこが変わったのかキャッチアップするのが、面倒で。。

    キャンセル

  • 2014/08/26 11:42

    話が続いているのかもしれませんが、新しい言語は面白いけど、
    変更も多いので色々大変ですよね。でも面白いw
    とりあえず、一度、解決済みにしますー。

    キャンセル

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

  • ただいまの回答率 90.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    Swift 宣言した変数や定数を出力する方法を教えてください

    プログラミング初心者です。 Swiftを始めたのですが宣言した変数や定数を出力する方法を知りたいです。 どなたか教えてくださいませんでしょうか? エラーがでて出力できません。。。

  • 解決済

    Swiftのhit&blowのコードください

    Swiftのhit&blowのコードをお持ちでしたらどなたかいただけないでしょうか。 試行錯誤してやっているのですがなかなかうまくいかないので参考にさせていただきたいです。 よろし

  • 解決済

    Swift ImageをPFFIleとしてParseに保存

    SwiftでParseを使っているのですが、ImageをPFFIleに変換する方法を教えてください。 ImagePickerを用いて取り込む画像をParseに保存しようと思っており

  • 受付中

    Swiftで物体の重力を変更したい

    下記のサイトを参考にして、SwiftとSpriteBuilderを使用し、1つの物理ノードを使用して物体Aと物体Bが上から落ちてくるようにしました。その物理ノードの中に地面(と物体

  • 解決済

    Swiftに関しての質問

    皆様、質問がございます。よろしくお願い申し上げます。 やりたいこと Web APIを用いて、HTTPリクエストでjsonデータを取得すること、 けれどbuildエラーが生じていて

  • 受付中

    Swift 複数のbridge headerファイルは存在してよいのか。

    皆様、質問がございます。 Swiftにて、AFNetworking + CoreDataを使ったアプリを作成したいと考えています。 この時、 ・AFNetWorkingに対応し

  • 解決済

    tableの内容を一括取得したい。

    お世話になります。 プログラミング初心者です。 データの作成/データの一覧表示をそれぞれ別のタブで行うアプリを作っています。 FirstViewでは ・TextFiel

  • 受付中

    インストール中で進めず

    正月にすみません。 至急です。 AppファイルをiPhone構成ユーティリティでIPAに変換して、iTunesを介して IPodにアプリを追加しました。 上手くインストール

同じタグがついた質問を見る

  • Swift

    7040questions

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