0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

にわかswiftプログラマのなぐり書き

Posted at

背景

iPhone/iPadアプリを開発するためにswiftを使うことになったので、休日を教養のために充てて基本文法から勉強してみた。
ちなみに、普段からメインで使っている言語はC/Java/C#/JavaScriptで、Ruby/Python/Goは触ったことがある程度にしか知らない。Objective-Cについては一切知らない。
今回は同じような状況にあって、即座になんとなくswiftを理解しなければならないような状態に陥ってしまっている人向けの記事を書く。
ガッツリ勉強する人向けの記事ではないのであしからず。

開発環境

SwiftはMacOSがなければ開発できないと思っていたが、どうやらそうではないらしい。
昔はC#もそうだった(Windowsという決まったOSでしか開発できなかった)が、今はswiftもオープンソース化してMac以外のOSでも開発できるので焦ってMacを買う必要はない。ただしiPhone/iPadアプリを開発するにはMacが必要なのは間違いない。
つまり、iPhone/iPadアプリではないアプリをSwiftで開発したいだけならUbuntuでもいい。以下は公式サイトのリリース一覧だが、Linux用のパッケージとインストール手順が記載されている。
https://swift.org/download/#releases

今回は公式サイトの手順に従いUbuntu18.04にインストールした。

$ swift --version
Swift version 4.2.1 (swift-4.2.1-RELEASE)
Target: x86_64-unknown-linux-gnu

サンプルコード

基本的な文法が理解できる程度の簡単なコード(定番のfizzbuzz)を書いておく。

func run(_ start:Int, end:Int)->Void{
    for val in start...end{
        var str : String = ""
        if(val%3==0){
            str += "Fizz"
        }
        if(val%5==0){
            str += "Buzz"
        }
        if str == "" {
            str = String(val)
        }
        print(str)
    }
}
run(1, end:100)

これまでの言語と違うところ

これまで、というのはC/Java/C#/JavaScriptのことだ。自分目線で。とりあえず自分が感じたポイントを列挙しておく。

  • ターミネータ ; が不要
  • 変数宣言はvar hoge:String
  • 定数宣言はlet PI = 3.14
  • インクリメントi++、デクリメントi--が使えない。i+=1はできる。
  • なのでforループも書き方が独特(foreachとbashのブレース展開みたいな書き方を組み合わせる)
    • for i in 1..<10 { }
  • 文字列の比較は==でいい
  • ifの条件文の小括弧が不要(あってもいい)
  • ifの処理ブロックに中括弧は必要
  • nullではなくnil
  • 関数はfuncで宣言する
    • 呼び出し時に実引数に仮引数名のラベルをつけないといけない
    • ラベルを省略するためには仮引数前に_をつける
    • 戻り値を2つ以上返すことができる

こんなところだろうか。なんとなくGo言語に近いのだろうか。そんな気がする。インクリメントi++ができないのは意外だった。
classやOptional型などはまだ使っていないので後報。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?