Swift 학습
18650 단어 swift
토대
기본 유형
Int Double Float String Bool
let c = 1_000_000_000
let d:Int = 1
let e:Double = 1.5
let f:Float = 2.2
let g:String = "12"
변수와 상수
let 상수 var 변수는 swift에서 다른 형식으로 은밀하게 변환되지 않습니다.하나의 값을 다른 형식으로 변환해야 한다면, 현식 변환을 해야 한다.
\()를 사용하여 값을 문자열로 변환할 수도 있습니다.
명시적 변환
let str = "The width is"
let intlet = 94
let result = str + String(intlet)
print(result)
let a = 3
let b = 0.1415926
let pi = Double(a)+b
let version = 4
let = " swift \(version)"
배열과 사전
[]을 사용하여 배열과 사전을 만들 수도 있고 []와 [:]를 사용하여 빈 배열과 사전을 설정할 수도 있습니다.
let emptyArray = [String]()
let emptyDictionary = [String: Float]()
var str = "Hello, playground"
var array = [1,2,3,4,5,6,7,8]
var ar1 = array[1]
array[1]=5
ar1 = array[1]
var dic = [String:Any]()
dic = ["a":"1","b":2.2,"c":3]
var ar2 = dic["c"]
array = []
dic=[:]
의 원조
여러 데이터의 집합은python과 유사하다
var tuples = ("aven" , 200 , false)
let (nickname,code,success) = tuples
let (name,_,_) = tuples
print (tuples.0)//aven
print (nickname)//aven
print (name)//aven
let test = ( nickname:"aven" , code:200 , success:false )
print (test.nickname)//aven
논리 조작
만약 switch와 조건 조작
-if 문장에서 조건은 부울 표현식이어야 한다.if와let을 함께 사용하여 값이 부족한 상황을 처리할 수 있다.선택할 수 있는 값을 처리하는 또 다른 방법은 사용??기본값을 제공하기 위해 조작부호를 사용합니다.옵션 값이 없으면 기본값으로 대체할 수 있습니다.switch는 임의의 데이터 및 각종 비교 작업을 지원합니다. - switch에 일치하는 자구가 있으면 프로그램은 switch 문구를 종료하고 아래로 내려가지 않기 때문에 자구의 끝에break를 쓸 필요가 없습니다.그러나default을 꼭 넣어야 한다. 그렇지 않으면 잘못 보고할 수 있다.
for-in, for,while,repeat-while를 순환합니다. for-in은 사전을 두루 훑어보며 키 값이 맞다는 두 변수가 필요합니다.사전은 무질서한 집합이기 때문에 그들의 키와 값은 임의의 순서로 교체되어 끝난다.주기에서.< 사용 가능범위.<==> 사용[),...==> [] repeat-while 유사do-while
let array = [11, 22, 33, 44, 55,66,77,88,99,111]
var team = 0
for data in array {
if data > 50 {
team += 3
} else {
team += 1
}
}
///////////////////
var optionalName: String? = nil
var greeting = "Hello!"
if let name = optionalName {
greeting = "Hello, \(name)"
}else{
greeting = "nobody"
}
let nickName: String? = "aven"
let fullName: String = "X"
let informalGreeting = "Hi \(nickName ?? fullName)"
//////////////////////////////////////////////////////
let vegetable = "red pepper"
switch vegetable {
case "celery":
print("Add some raisins and make ants on a log.")
case "cucumber", "watercress":
print("That would make a good tea sandwich.")
case let x where x.hasSuffix("pepper"):
print("Is it a spicy \(x)?")
default:
print("Everything tastes good in soup.")
}
////
let dic = [
"Prime": [2, 3, 5, 7, 11, 13],
"Fibonacci": [1, 1, 2, 3, 5, 8],
"Square": [1, 4, 9, 16, 25],
]
var largestNumber = 0
var largestKey: String = ""
for (key, values) in dic {
for value in values {
if value > largestNumber {
largestNumber = value
largestKey = key
}
}
}
print(largestKey)
print(largestNumber)
var n = 2
while n > 100 {
n = n * 2
}
print(n)//2
var m = 2
repeat {
m = m * 2
} while m > 100
print(m)//4
for i in 0..<4 {
print(i)//0 1 2 3
}
함수.
func는 하나의 함수를 설명하고, ->는 함수 반환 값의 유형을 지정하며, 모듈을 사용하여 한 함수가 여러 개의 값 변수로 함수에서 수조로 표현될 수 있도록 합니다.함수는 매개 변수 이름을 매개 변수의 라벨로 사용하고, 매개 변수 이름 앞에서 매개 변수 라벨을 사용자 정의하거나 을 사용할 수 있습니다.매개변수 태그를 사용하지 않음을 나타냅니다.
func hi(name: String) -> String {
return "Hello \(name)."
}
print( hi(name:"aven"))//Hello aven.
func hi2(_ name: String) -> String {
return "Hello \(name)."
}
print( hi2("aven"))//Hello aven.
func hi2(nickname name: String) -> String {
return "Hello \(name)."
}
print( hi2(nickname:"aven")) //Hello aven.
func compare(_ numbers: [Int]) -> (min: Int, max: Int, sum: Int) {
var min = numbers[0]
var max = numbers[0]
var sum = 0
for score in numbers {
if score > max {
max = score
} else if score < min {
min = score
}
sum += score
}
return (min, max, sum)
}
let result = compare([11,2,34,56,1])
print (result) //(min: 1, max: 56, sum: 104)
/////
func data(numbers: Int...) -> Double {
var sum = 0
let count = numbers.count
for number in numbers {
sum += number
}
if count == 0 {
return 0
}
return Double(sum/count)
}
print(data(numbers: 1,2,111))//38.0
print(data(numbers: 22,1,43,12,53))//26.0
print(data())//0.0
함수는 중첩될 수 있습니다.중첩된 함수는 외부 함수의 변수에 접근할 수 있습니다.
func newdata(_ number: Int) -> Int {
var y = number;
func add() {
y += 5
}
add()
return y
}
print(newdata(18)) //23
함수는 다른 함수의 반환값으로 할 수도 있고, 매개 변수로 다른 함수에 전달할 수도 있다.
func makeIncrementer() -> ((Int) -> Int) {
func addOne(number: Int) -> Int {
print (number)
return 1 + number
}
return addOne //((Int) -> Int)
}
var increment = makeIncrementer() //((Int) -> Int)
increment(7) //8
func hasAnyMatches(bumber: Int, condition: (Int) -> Bool) -> Bool {
if condition(bumber) {
return true
}
return false
}
func lessThanTen(number: Int) -> Bool {
return number < 10
}
var number = 9
hasAnyMatches(bumber: number, condition: lessThanTen) // true
패키지 닫기: 그것은 나중에 호출될 수 있는 코드입니다.패킷의 코드는 패킷 역할 영역의 변수와 함수에 접근할 수 있으며, 패킷이 다른 역할 영역에서 실행되더라도.함수는 사실상 특수한 클러치이다.익명 클립을 만드는 데 {}을 사용할 수 있습니다.in을 사용하여 매개 변수와 반환값 형식의 성명을 패키지 함수체와 분리합니다.
var numbers = [20, 19, 7, 12]
let ok = numbers.map({
(number: Int) -> Int in
if(number%2 != 0){
return 0
}else{
return number
}
})
print(ok)//[20, 0, 0, 12]
let mappedNumbers = numbers.map({ number in 3 * number })
print(mappedNumbers)//[60, 57, 21, 36]
let sortedNumbers = numbers.sorted { $0 > $1 }
print(sortedNumbers)//[20, 19, 12, 7]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
백그라운드에서 값을 계산하고 Swift 동시성 이후에 결과 사용값을 계산해야 하고 메인 스레드를 차단하지 않으려면 계산된 값을 반환하는 Swift Task 구조에서 해당 값을 계산하면 됩니다. Swift 동시성 이전에는 백그라운드 대기열로 이동하여 필요한 값을 계산하고 필요한 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.