LoginSignup
0
0

More than 5 years have passed since last update.

Swift(基本のキの字)

Last updated at Posted at 2018-02-17

はじめに

先日環境を整えた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と怒られる。

他にも色々あると思うけど、気が向いたら追記。

まとめ

なんか、まじめに書いちゃった。それにつきる。

0
0
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
0