Swift 基礎文法 part3
こんにちはかわです。
アドベントカレンダー14記事目です。
がんばります。
辞書とオプショナル型
var score: [String: Int] =[ "math": 90, "kokugo": 75, "science": 80, "english": 90 ] print(score["english"]) // => Optional(90) score["society"] = 35 print(score["society"]!)// => 35 アンラップした状態 print(score["P.E"]) // => nil var name: String? // => オプショナル型 print(name) name = "kawa" print(kawa) // => Optional("kawa") // オプショナルバインディング var value: String? value = "こんにちは" if let value = value { // アンラップ処理 print(value) // => こんにちは }
関数
func add(a : Int, b: Int) -> Int{ return a + b } print(add(a: 1, b: 2)) //外部引数名の指定 func sub(num1 a: Int, num2 b: Int) -> Int{ return a - b } print(sub(num1: 3, num2: 1)) //引数名省略 func mul(_ a: Int, _ b: Int) -> Int{ return a * b } print(mul(5, 4)) //可変長引数 func sum(_ a: Int...) -> Int { //a には配列が入る var sum: Int = 0 for num in a{ sum += num } return sum } print(sum(1, 2, 3, 4, 5))
enum
/*enumの定義 書式 enum enum名: 型名{ case 列挙子 } */ enum Fluit{ case Apple case Orange }
throw処理 と defer処理
//エラータイプの宣言 enum Myerror: Error{ case InvalidValue } /* エラーをthrowする可能性がある関数 throwを行う可能性がある関数の宣言 func 関数名(引数) throw -> 戻り値の型 throw処理の記述 throw エラータイプのプロトコルに準拠したenum */ func doubleUp(_ value: Int) throws -> Int{ if value < 0{ throw Myerror.InvalidValue } return value * 2 } //エラーハンドリング do{ //deferには処理終了時に必ず行う処理を記述 defer{ print("処理が終了しました") } var doubleResultValue = try doubleUp(-1) //tryを付ける必要がある print("正常終了") }catch Myerror.InvalidValue { print("Error") } /* 正常終了時 正常終了 処理が終了しました ERROR時 処理が終了しました Error */