Penutupan:
Penggunaan variabel fungsi terus vs menggunakan fungsi itu sendiri dapat membantu:
65 byte:
var r:(String,Int)->String={return String(repeating:$0,count:$1)}
66 byte:
func r(s:String,i:Int)->String{return String(repeating:s,count:i)}
Perbedaan kecil di sini, tetapi akan lebih banyak muncul di beberapa teka-teki.
Fungsi Pemendekan:
Melihat contoh sebelumnya mengingatkan saya pada sesuatu. Kadang-kadang, jika Anda akan menggunakan suatu fungsi cukup kali, ada baiknya ruang untuk menamainya:
Ini:
String(repeating:$0,count:$1)
Untuk ini:
var r:(String,Int)->String={return String(repeating:$0,count:$1)}
Atau, sebenarnya, ini lebih baik:
var r=String.init(repeating:count:)
Dengan begitu Anda hanya menelepon r("Hello World",8)
sajaString(repeating:"Hello World",count:8)
Meninggalkan Jenis Deklarasi:
Saya pernah membuat penutupan tanpa menetapkan jenis argumen, sehingga menciptakan jawaban yang lebih pendek:
var f={(i)->Int in i-1+i%2*2}
Kompilator menyimpulkan bahwa i
ada di Int
.
Buat Array dengan Cara Cepat:
Jika Anda membutuhkan array Ints
, gunakan a Range
untuk membuatnya:
Array(0...5)
Ini melakukan hal yang sama seperti:
[0,1,2,3,4,5]
Array Alih-alih If
atau Switch
:
Alih-alih melakukan ini:
if n==0{return "a"}else if n==1{return "b"}else{return "c"}
Anda mungkin dapat melakukan ini:
return ["a","b","c"][n]
Mempersingkat jenis:
Jika Anda sering menggunakan konversi jenis, Anda mungkin ingin membuat alias jenis:
typealias f=Float
Peta:
Ingatlah bahwa Anda sering tidak perlu menggunakan return
kata kunci dalam map
fungsi.
Menjalankan Swift Online:
Meskipun Try It Online tidak mendukung Swift It tidak sekarang !