iOS 6強SWIFTの収集
Collection:変数の管理方法 Array Dictionary
//必要なコンセプト Set Closure
データを順番に保存できる
すべての勘定科目は同じタイプでなければなりません.
✔▼順番あり(順番:index、0から)
Arrayはいつ使えばいいですか?
1.順序のあるもの
2.物の順番がわかるとき
1️⃣
1️⃣
1」空か確認する方法
めいめいたんい
key -> value
keyは唯一でなければならない
cf)DictionaryとArray(シーケンスディスク)
1️⃣
1」空の方法
重複しないユニークなアイテムを使用する場合+順序が重要でない場合
名前のないメソッド、関数
機能を実行するコードブロックの特殊なタイプ->正確には、関数は閉パッケージのタイプです.
閉じて何の役に立つんだ?業務上どのように使用されていますか?
Completion Block
:いくつかの操作が終了した後に実行する必要がある場合に使用します(closureはいくつかの操作を実行することを指します).
High order Functions
:input受信関数として使用できる関数(closureをinputとして使用)
単純閉鎖 コードブロック 入力パラメータ受信モジュール の値 を返します.パラメータで閉パケットを受け入れる関数 Trailing Closure
closerがキャプチャされた場合は、範囲外で使用できます.
//必要なコンセプト
1. Array
データを順番に保存できる
すべての勘定科目は同じタイプでなければなりません.
✔▼順番あり(順番:index、0から)
Arrayはいつ使えばいいですか?
1.順序のあるもの
2.物の順番がわかるとき
アレイの作成方法
1️⃣
var evenNumbers: [Int] = [2,4,6,8]
2️⃣let evenNumbers: Array <Int> = [2,4,6,8]
arrayに追加する方法
evenNumbers.append(10) //evenNumbers를 let으로 만드는 경우 오류남
複数追加
1️⃣
evenNumbers += [12, 14, 16]
2️⃣evenNumbers.append(contentsof:[18,20])
arrayプロパティの使用
1」空か確認する方法
let isEmpty = evenNumbers.isEmpty // False
evenNumbers = [] //비워짐
2πジルコニウム元素はいくつありますか?evenNumbers.count
3▼▼▼最初の要素をチェック(最後の要素をチェック)print(evenNumbers.first)
//optional로 반환됨
//evenNumbers가 빈 어레이이면 first 값이 nil이 되기 때문에 항상 first값이 존재한다고 장담할 수 없음
print(evenNumbers.last)
-> optional bindingif let firstElement = evenNumbers.first {
print("---> first element: \(firstElement)")
}
最小値と最大値の決定evenNumbers.min()
evenNumbers.max()
//둘 다 optional
4要素のインポートvar firstItem = evenNumbers[0]
var secondItem = evenNumbers[1]
//index로 값 가져오면 됨
//없는 index의 element 가져오려고 하면 에러남
5️⃣ range typelet firstThree = evenNumbers
let firstThree = evenNumbers[0...2]
//0,1,2번째 index의 값 가져옴
6"""evenNumbers.contain(3) //False
evenNumbers.contain(4) //True
7▼▼▼▼新しい値を追加(既存のインデックスで)evenNumbers.insert(0, at:0)
//기존 element들은 다 뒤로 밀림
8」要素消去法evenNumbers.removeAll()
evenNumbers = []
evenNumbers.remove(at:0)
//특정 index 삭제
変更9」の値evenNumbers[0] = -2
evenNumbers[0...2] = [-2, 0, 2]
🔟 逆順evenNumbers.swapAt(0,1)
//0과 1, 두 인덱스 값을 서로 바꿔치기함
1▼▼1▼▼▼▼loopを使うfor num in evenNumbers {
print(num)
}
for (index,num) in evenNumbers.eumerated(){
print("idx: \(index), value: \(num)")
}
//enumerated 함수는 (index, value)로 이루어진 tuple을 리턴하는 함수
それ以外はevenNumbers.dropFirst(3)
//앞에 3개 빼고 보여줘 (실제 array에는 영향 안끼침)
evenNumbers.dropLast()
//괄호 안에 아무것도 없으면 1
evenNumbers.prefix(3)
//앞의 3개만 가져오기
evenNumbers.suffix(3)
//뒤의 3개만 가져오기
2. Dictionary
めいめいたんい
key -> value
keyは唯一でなければならない
cf)DictionaryとArray(シーケンスディスク)
辞書の作り方
1️⃣
var scoreDic: [String:Int] = ["Jason":80, "Jay":95, "Jake":90]
//String:Int = key:value
2️⃣var ScoreDic: Dictionary <String, Int> = ["Jason":80, "Jay":95, "Jake":90]
ScoreDic["Jason"] //80
ScoreDic["없는 값"] //nil
//optional
dictionaryプロパティの使用
1」空の方法
scoreDic = [:]
2▏▏▏▏▏▏▏scoreDic.isEmpty
3ππ項目カウントscoreDic.count
4▼既存項目の更新scoreDic["Jason"] = 99
5▼▼▼▼項目を追加scoreDic["Jack"] = 100
6πエントリの削除scoreDic["Jack"] = nil
7️⃣ for loopfor (name, score) in scoreDic {
print("\(name), \(score)")
}
for key in scoreDic.keys{
print(key)
}
3.Set
重複しないユニークなアイテムを使用する場合+順序が重要でない場合
setの作成
var someSet: Set<Int> = [1,2,3,1]
//{2,3,1} -> 중복된 값은 삭제하고 보여줌
setプロパティの使用
someSet.isEmpty
someSet.count
someSet.contains(4) // False
someSet.insert(5)
someSet.remove(1)
4. Closure
名前のないメソッド、関数
機能を実行するコードブロックの特殊なタイプ->正確には、関数は閉パッケージのタイプです.
閉じて何の役に立つんだ?業務上どのように使用されていますか?
Completion Block
:いくつかの操作が終了した後に実行する必要がある場合に使用します(closureはいくつかの操作を実行することを指します).
High order Functions
:input受信関数として使用できる関数(closureをinputとして使用)
closureタイプ
let choSimpleClosure = {
}
choSimpleClosure()
let choSimpleClosure = {
print("closure 입니다")
}
choSimpleClosure()
let Closure: (String) -> Void = { name in
print("이름은 \(name)입니다")
}
//void: output이 없다는 뜻
Closure("린다")
は、let Closure: (String) -> String = { name in
let message = "\(name)"
return message
}
let result = Closure("린다")
func thisFunction(closure:() -> Void) {
print("closure")
closure() //이걸 꼭 추가해야함
}
thisFunction(closure: {
print("closure")
})
func Function(message: String, closure: () -> Void){
print("\(message)")
closure()
}
Function (message:"~~", closure: {
print("~~")
})
Function(message:"~~") {
print("~~")
}
closure基本概念
var multiplyClosure: (Int, Int) -> Int = { (a:Int, b: Int) -> Int in
return a*b
}
var multiplyClosure: (Int, Int) -> Int = {a,b in
return a*b
}
var multiplyClosure: (Int, Int) -> Int = { $0 * $1 }
let result = multiplyClosure(4,2)
func operateTwoNum(a:Int, b:Int, operation: (Int,Int)->Int)->Int {
let result = operation(a,b)
return result
}
operateTwoNum(a: 4, b: 2, operation: multiplyClosure)
var addclosure: (Int,Int) -> Int = {a,b in
return a+b
}
operateTwoNum(a: 4, b: 2) { a,b in
return a/b
}
capturing values
closerがキャプチャされた場合は、範囲外で使用できます.
let voidClosure: () -> Void = {
print("iOS")
}
//input, output 없는 메소드 만들 수 있음
var count = 0
let incrementer = {
count += 1
}
Reference
この問題について(iOS 6強SWIFTの収集), 我々は、より多くの情報をここで見つけました https://velog.io/@hope1053/iOS-6강-스위프트-collectionテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol