swift 학습 노트 중 하나--swift 처음 보기

5586 단어 자바swift
주:xcode 6 를 사용 하여 디버그 버그 알림 을 사용 하여 비밀 번 호 를 입력 하면 터미널 에 DevToolsSecurity-enable 해결//========================/2014/7/18 11:06//=======================================
1.단순 값(값 형식 과 자바 의 유형 대상:String,Double,Float,Int(Integer)...)은 두 개의 유용 한 집합 형식 인 Array 와 Dictionary let 성명 상수,var 성명 변 수 를 추가 하 였 습 니 다.(상수 값 은 한 번 만 할당 할 수 있 습 니 다.예 를 들 어 원주 율 pi=3.14 는 상수 입 니 다.원주 율:let PI=3.14)을 설명 합 니 다.
let 와 var 가 설명 한 값 은 명시 적 으로 지정 한 값 의 유형 을 사용 하지 않 고 컴 파일 러 는 컴 파일 할 때 값 의 특징 에 따라 지정 한 형식 값 을 추정 합 니 다.
물론 let a:Double=70 var b:Float=4 와 같은 명시 적 으로 지정 할 수 있 습 니 다.
값 은 다른 형식 으로 암시 적 으로 변환 되 지 않 습 니 다.다른 형식 으로 변환 하려 면 let label="the width is"let width=95 let widthlabel=label+String(width)
()괄호 안에 있 는 값 을 문자열 로 변환 할 수 있 습 니 다.따옴표 에 사용 할 수 있 습 니 다.playground 에 var a:String="(3+5)"+String(6)을 입력 하면 86 을 출력 합 니 다.
배열 과 사전 의 정의:
 var array = ["a","b"]
 var dict = ["a":1,"b":2]
 dict["c"] = 3 //       

         
 var array = String[]()     var dict = Dictionary<String, T>
        api       

2.흐름 제어 if,switch 조건 제어,for-in,for,while,do-while 순환 제어 if
 let scores = [75,43,103,87,12]
 var teamScore = 0
 for score in scores {
      if score > 50 {
           teamScore += 3
      } else {
           teamScore += 1
      }
 }

switch swift 의 switch 조건 은 자바 와 달리 swift 는 값 을 제한 하지 않 습 니 다.그 다음은 swift 의 switch 운행 이 일치 하 는 경우 종료 되 며,자바 는 수 동 으로 break 를 사용 하여 종료 해 야 합 니 다.
 let vegetable = "red pepper"
 switch vegetable {
 case "celery":
      let vegetableComment = "Add some raisins"
 case "cucumber", "watercress"
      let vegetableComment = "That would make a good tea sandwich."
 case let x where x.hasSuffix("papper"):
      let vegetableComment = "Is it a spicy \(x)?"
 default:
      let vegetableComment = "Everything tastes good in soup."
 }

데이터 사전(dictionary)순환 에 대해 swift 를 옮 겨 다 니 는 특별한 처리 방식 을 제공 합 니 다:for 뒤에 key-value 대신 값 을 사용 합 니 다.
 let dict = ["Prime":[2,3,5,7,11,13],"Fibonacci":[1,1,2,3,5,8],"Square":[1,4,9,16,25]]
 var largest = 0
 for (kind, numbers) in dict {
      for number in numbers {
           largest = number
      }
 }
 largest//  25

while 와 do-while 순환 은 기본적으로 자바 의 while 와 do-while 와 유사 합 니 다.조건 swift 를 제외 하고 괄호 가 필요 하지 않 습 니 다.자바 는 괄호 for 순환 을 사용 해 야 합 니 다.세 가지 표기 법 이 있 습 니 다.1>for i in array 2>for i in 0.10 3>for i=0;i < 10; ++i(약간 Oracle 같은 for.in.loop)
주:연산 자 와 앞 뒤 에 빈 칸 이 있어 야 합 니 다.그렇지 않 으 면 컴 파일 이 통과 되 지 않 습 니 다.
3.함수 와 패키지 swift 의 함 수 는 func 성명 을 사용 하고"->"성명 함수 의 반환 값 유형 을 사용 합 니 다.이 점 은 문법 적 으로 자바 의 방법 과 많은 차이 가 있 습 니 다.쉽게 이해 할 수 있 습 니 다.그리고 더 특별한 점 이 있 습 니 다.swift 의 함 수 는 한 그룹의 값 을 되 돌 릴 수 있 습 니 다.예 를 들 어:
 func getGasPrices() -> (Double, Double, Double) {
      return (3.0, 4.0, 5.0)
 }
 getGasPrices()

swift 의 함수 매개 변 수 는 자바 의 방법 매개 변수 와 마찬가지 로 사용 할 수 있 습 니 다.이 함수 에 여러 개의 매개 변수 가 있 음 을 표시 합 니 다.(몇 개의 매개 변 수 는 함수 에서 배열 로 처리 합 니 다)
 func sumOf(numbers: Int...) -> Int {
      var sum = 0
      for number in numbers {
           sum += number
      }
 }

내장 함수(함수 내 에서 설명 하 는 함 수 는 내장 함수),내장 함 수 는 내장 함수 의 변 수 를 방문 할 수 있 습 니 다.
 func returnFifteen() -> Int {
      var y = 10
      func add() { //    
           y += 5
      }
      add()
      return y
 }

함 수 는 아주 좋 은 유형 입 니 다.이것 은 함수 가 다른 함수 의 반환 값 으로 할 수 있다 는 것 을 의미 합 니 다.
 func makeIncrementr() -> (Int -> Int) {
      func addOne(number: Int) -> Int {
           return 1 + number
      }
      return addOne
 }
 var increment = makeIncrementer()
 increment(7)

동 리 함수 도 다른 함수 의 매개 변수 로 할 수 있다.
 fucn hasAnyMatches(list: Int[], condition: Int-> Bool) -> Bool {
      for item in list {
           if condition(item) {
                return true
           }
      }
      return false
 }
 func lessThanTen(number: Int) -> Bool {
      return number < 10
 }
 var numbers = [20,19,7,12]
 hasAnyMatches(numbers, lessThanTen)

함 수 는 특사 의 패 킷 입 니 다.다음 예 는 함수 로 numbers 에 패 킷 을 닫 는 항목 당*3 배 입 니 다.
 numbers.map({
      (number:Int) -> Int in
      let result = 3 * number
      return result
      })

패 킷 을 닫 는 형식 이 알려 져 있 으 면 인자 의 유형 이나 값 을 되 돌려 주 는 형식 을 숨 길 수 있 습 니 다.
 numbers.map({
      number in 3 * number })  //         

매개 변수의 아래 표 시 된 값 을 매개 변수의 이름 으로 대체 하여 매개 변수 에 값 을 부여 할 수 있 습 니 다.패 키 지 를 마지막 매개 변수 로 함수 에 전달 할 때 괄호 뒤에 직접 따라 갈 수 있 습 니 다.
 sort([1,5,3,12,2]){ $0 > $1 }  //    12,5,3,2,1
 sort([1,5,3,12,2]){ $0 < $1 }   //   1,2,3,5,12

4.대상 과 클래스 대상 과 클래스 의 개념 은 자바 와 같 지만 사용 방식 은 큰 차이 가 있 습 니 다.자바 는 new 예화 대상 을 사용 하고 swift 는 함수 와 유사 한 방식 으로 예화 대상 을 호출 합 니 다.예 를 들 어 빈 문자열 을 만 듭 니 다.
 java:  
    String javaStr = new String();
 swift: 
    var swiftString = String()

swift 클래스 의 초기 화 함 수 는 init 입 니 다.
 class Shape {
      var type = String()
      init(type:String) {
           self.type = type
      }
 }

그리고 다른 곳 n 다 차이,나중에 천천히 발견
struct 와 class 의 차이 점:struct 는 class 의 여러 가지 특징 을 지원 하고 포함 할 수 있 습 니 다.유일한 차이 점 은 struct 는 전송 값 이 고 class 는 전송 참조 입 니 다.
첨부,중국어
PS:vmware mac os 에서 xcode 6 가 자꾸 무 너 져 서 정식 버 전이 빨리 나 오 기 를 기대 합 니 다.

좋은 웹페이지 즐겨찾기