swiftを使ってみた
某Wimax2の制限なしの2年縛りが近づいてきているので、諸々の大きめなファイルのダウンロードをしていました。xcodeもこの機会にダウンロードしました。せっかくなのでswiftを使ってみました。
起動する。
ガチで開発しない場合はPlaygroundを使うようです。
エディタの全体構造はこのようになっています。中央がコードエディタで、下が実行結果。
コードを書くと勝手に実行されるようです。左側にリアルタイムで処理結果が出ています。
スクリプト言語っぽいのに型が厳しいなぁという印象です。
//: Playground - noun: a place where people can play import UIKit // var str = "Hello, playground 111" var x = "abc" print(x) var b = 123 print(b) //print(a + b) NG // //Playground execution failed: /var/folders/hw/p4bp49hd7v9_1j60sjvmhqnr0000gn/T/./lldb/1500/playground162.swift:12:7: error: use of unresolved identifier 'a' //print(a + b) //^ print(x + String(b)) print("array ---") var arr = [0,1,2,3,4,5,6,7,8,9] var a0 = arr.first print(a0!.value) print("loop ---") // loop arr[3] for a in arr { print(a) } print("filter ---") //filter var arr1 = arr.filter{$0 % 2 == 0} for a in arr1 { print(a) } print("filter ---") //filter for a in (arr.filter{$0 % 2 == 0}) { print(a) } //// compile error //for a in arr.filter{$0 % 2 == 0} { // print(a) //} print("dictionary ---") // var dic = [A : 10, B :20, C:30, D:40 ] // NG var dic = ["A" : 10, "B" :20, "C":30, "D":40 ] // OK print(dic["A"]) // optional value print(dic["A"]!) // unwrap print("dictionary loop ---") for a in dic { print(a.0) print(a.1) } print("dictionary sort ---") for a in (dic.sort{$0.1 < $1.1}) { print(a.0) print(a.1) } // https://developer.apple.com/library/ios/documentation/General/Reference/SwiftStandardLibraryReference/index.html // https://developer.apple.com/library/ios/documentation/Swift/Reference/Swift_StandardLibrary_Functions/index.html //var dic1 = [ ["name" : "AA" , "val" : 10] , ["name" : "BB", "val" : 20]] //for a in dic1 { // print(a.) //} // a:10, b:20 , c:30, d:40 var g = ["a":10, "c":30 , "b":20 , "d":40] for (key, val) in g { print("key=\(key) : val=\(val)") } var g1 = [["a":10], ["c":30] , ["b":20] , ["d":40]] for val in g1 { print("data=\(val)") } var g2 : Array<Array<NSObject>> = [["a",10], ["c",30] , ["b",20] , ["d",40]] func check(x : Array<Array<NSObject>>) -> (){ var maxVal = 0; for var val in x { if (maxVal > val[1] as! Int) { val[1] = -1 } else { maxVal = val[1] as! Int } print("data=\(val[1])") } } print("function ---") check(g2)