はじめに
先日環境を整えたSwift。環境を整えただけで満足しそうだったので、ちょっとは進めてみよう。
プログラム初心者的な記載になるけど、Swiftについてはまるっきりの初心者。他の言語のことは一旦忘れて、初学者の気持ちでやってみる。(完全に初学者にはなりきれないけどね)
環境
# swift --version
Swift version 4.0.3 (swift-4.0.3-RELEASE)
Target: x86_64-unknown-linux-gnu
変数
- 変数はvarで宣言
- 基本的には型指定も必要だが、宣言時に初期値を代入する際に推論してくれる。
- 型指定しても初期化しないとNG
- とりあえず、Int(整数型)・String(文字型)・Double(浮動小数型)あたりを覚えておけばいいかな
var a // 型を指定していないのでNG
var b:int // Int(先頭が大文字)じゃなきゃダメ。ケチ。
var c = 3 // 型宣言していないが、初期値として与えた3をIntと推論してくれるのでOK
var height= 129.3 // 小数部があるとDoubleと判断される
var d:Int // 変数宣言
print (d) // dは宣言だけで初期化されていないので、NG
var e:Int
e=1
print (e) // OK(1)
var f:Int = 2
print (f) // これでもOK(2)
定数
- 定数はletで定義する
- 一度定義したものは変更できない
let a=10
print (a) // 10
a=a+1 // NG(定数は変更できない)
出力
print "Capybara" // 括弧で囲わないとNG
print ("Capybara") // OK
print ("I love " + "capybara") // 出力を連結する場合は、+を使う
print (2 + " capybaras") // 数値型と文字型を混在して連結はできない
print (String(2) + " capybaras") // 数値型を文字型に変換すればOK
関数
基本形は
func 関数名(引数:型[,引数:型 .... ]) -> 戻り値の型 {
// 関数の中身
}
戻り値が無い時は、型としてVoid
を指定。Void
の場合は指定しなくてもOK。(もちろんその場合は、->
も不要)
使用時は、値だけではなく引数名も指定しないとダメっぽい。(ググると指定しないケースもあるけど、過去の記法かもしれない)
func add(num:Int)->Int {
num=num+1
return num
}
var a=17
b = add(a) // NG
c = add(num:a) // OK(18)
なお、関数に渡された引数は関数内で変更することはできない模様。一部func add(var num:Int)
のように宣言時にvar
を付ければOKと書かれているサイトもあるが、Swift4ではNGっぽい。
制御系
if文
else ifの記述くらいかな。(elseif
でもelif
でもelsif
でもない)
var a:Int = 12
if (a % 3 == 0){
print ("3の倍数")
} else if (a % 3 == 1){
print ("3で割ると1余る")
} else {
print ("3で割ると2余る")
}
for文
var total:Int = 0
for a in 1...10{
total+=a
}
print (total) // 55
for var a=1; a<=10;a++{
のような記述は(これまた)昔は出来たみたいだけど、Swift4ではダメ。コンパイル時にerror: C-style for statement has been removed in Swift 3
と怒られる。
他にも色々あると思うけど、気が向いたら追記。
まとめ
なんか、まじめに書いちゃった。それにつきる。