文書の過去の版を表示しています。
唐突に Python と Swift を比較してみようと思った。
https://pycamp.pycon.jp/textbook/ を Swift で書いてみる。Xcode 14.1 の Playground で動作を確認する。
第一段階。まず引数をそのまま返す関数を作って100回実行する。
func fizzbuzz(_ num: Int) -> Int { return num } for num in 1...100 { print(fizzbuzz(num)) }
第2段階。
func fizzbuzz(_ num: Int) -> String { if num % 3 == 0 && num % 5 == 0 { return "FizzBuzz" } else if num % 3 == 0 { return "Fizz" } else if num % 5 == 0 { return "Buzz" } return String(num) } for num in 1...100 { print(fizzbuzz(num)) }
let a = 1 print(a) //a = 2 //print(a) var b = 2 print(b) b = 3 print(b) //b = "4" //print(b) 出力 1 2 3
var c: Float = 5 print(c) 出力 5.0
import Foundation print(pow(5,2))
print("Hello\"world") var a = 1 print("Hello \(a) world")
Hello"world Hello 1 world
複数行文字列リテラル
print(""" foo bar baz """)
print("spam" + "ham")
let s = "swift" let i = s.startIndex print(s[i]) 結果 s
var a : [Any] = ["spam", "egg", 0.5] print(a)
a += ["ham"] // a = a + ["ham"] a[1]
for animal in ["cat", "dog", "snake"] { print(animal) }
コレクションは配列、辞書、集合
var (dog, cat) = ("dog", "cat") print(dog, cat)
var animals = ("dog", "cat") print(animals) print(animals.0) print(animals.1) //for animal in animals { // print(animal) //}
let http200Status = (statusCode: 200, description: "OK") print(http200Status.statusCode) let (statusCode, _) = http200Status print(statusCode)
Playground でテキストファイルの読み書き、意外に大変
https://stackoverflow.com/questions/24245916/how-can-i-read-a-file-in-a-swift-playground
import Foundation var d = NSDate() print(d) var d2 = Date() print(d2)
Swift 5.7 の新機能
https://www.hackingwithswift.com/swift/5.7/regexes
そのまま引用
let search1 = /My name is (.+?) and I'm (\d+) years old./ let greeting1 = "My name is Taylor and I'm 26 years old." if let result = try? search1.wholeMatch(in: greeting1) { print("Name: \(result.1)") print("Age: \(result.2)") }
もうしわけないので if let ではなく guard let else return に書き換えてみる
func hello() { let search1 = /My name is (.+?) and I'm (\d+) years old./ let greeting1 = "My name is Taylor and I'm 26 years old." guard let result = try? search1.wholeMatch(in: greeting1) else { return } print("Name: \(result.1)") print("Age: \(result.2)") } hello()
https://speakerdeck.com/ainame/swift-5-dot-7debian-waruzheng-gui-biao-xian-woshi-sitemiyou