스위프트 기본 문법
이전 섹션에서 우리는 이미 "안녕하세요!"프로그램 스위프트 언어를 만드는 방법에 대해 이야기했다. 이제 우리는 다음 검토에 온다.
당신은 OS X 놀이터 코코아를 도입 할 필요를 작성하는 경우 :
import Cocoa /* 我的第一个 Swift 程序 */ var myString = "Hello, World!" print(myString)
우리는 아이폰 OS 놀이터를 만들려면 당신은 UIKit을 소개합니다 :
import UIKit var myString = "Hello, World!" print(myString)
위의 프로그램은 출력은 다음과 같습니다
Hello, World!
위의 코드는 스위프트 프로그램의 기본 구조입니다, 우리는 구조의 세부 부분에 설명했다.
스위프트 소개
우리는 스위프트 프로그램 목표 - C (또는 C 라이브러리)의 프레임 워크를 소개하는import 문을 사용할 수 있습니다.예를 들어수입 코코아 문이 라이브러리를 가져오고 코코아 API를 사용하려면, 우리는 스위프트 프로그램에서 사용할 수 있습니다.
코코아 자체는 오브젝티브 C는 C 언어의 엄격한 상위 집합입니다, 목표 - C 언어로 작성, 그래서 우리는 스위프트 간단한 혼합 C 언어 코드에서 사용할 수있는, 또는 C ++ 코드입니다.
스위프트 마크
토큰의 다양한에서 스위프트 프로그램은 마커 단어, 식별자, 상수, 문자열, 또는 기호가 될 수 있습니다. 스위프트 예는 다음과 같은 프로그램은 세 개의 토큰으로 구성
print("test!") 标记是:单词、符号 print ( "test!" )
주의
단일 라인과 매우 유사 C 언어와 스위프트의 의견은 두 개의 백 슬래시로 시작하는 댓글 :
//这是一行注释
멀티 라인 주석 / *에가 * / 종료로 시작 :
/* 这也是一条注释, 但跨越多行 */
멀티 라인 주석과 C 언어는, 멀티 라인 주석 스위프트 안에 다른 여러 줄 주석 내에서 다른 중첩 될 수있다. 표현은 여러 줄 주석 블록에있는 다른 여러 줄 주석에 삽입됩니다. 첫 번째 주석 블록 뒤에 여전히 다음, 폐쇄 두 번째 주석 블록 :
/* 这是第一个多行注释的开头 /* 这是嵌套的第二个多行注释 */ 这是第一个多行注释的结尾 */
멀티 라인 주석의 중첩은 코드 블록이 이미 주석이있는 경우에도, 더 빠르고 쉽게 주석 블록에서 할 수 있다는 것입니다.
세미콜론
(;) 다른 언어는 달리, 스위프트는 명령문의 각 줄의 끝에 세미콜론의 사용을 필요로하지 않습니다,하지만 당신은 라인 성명 같은 수에 세미콜론으로 구분해야합니다 :
import Cocoa /* 我的第一个 Swift 程序 */ var myString = "Hello, World!"; print(myString)
식별자
식별자는 구조, 클래스, 및 다른 프로토콜의 이름을 지정 변수, 상수, 메소드, 함수, 열거를 제공하는 것이다. 식별자를 구성하는 편지는 다음과 같이 스위프트 언어 식별자 명명 특정 규범이다 :
대소 문자 구분, MyName로와 MyName로 두 개의 서로 다른 식별자이다;
첫 번째 문자 식별자 수 (_) 또는 문자는 밑줄로 시작하지만, 숫자가 될 수 없습니다;
식별자 (_) 다른 문자가 밑줄 문자 또는 숫자 일 수있다.
사용자 이름, USER_NAME 님 _sys_val, 높이 및 기타 합법적 인 식별자와 2mail, 룸 # 불법 클래스 식별자 예를 들면 다음과 같습니다.
참고 : 스위프트 편지는 유니 코드 인코딩을 사용합니다 [1].유니 코드는 우리가 채팅 도구를 사용하여 중국어, 일본어, 한국어, 다른 문자, 심지어 이모티콘 등의 텍스트 인코딩 아시아를 포함하는 통합 시스템을 부호화,라고
당신이 식별자로 키워드를 사용해야하는 경우, 당신은 예를 들어 키워드 (`), 주위에 악센트를 추가 할 수 있습니다 :
키워드
억양의 사용 (`) 둘러싸 또는 식별자로 사용되지 않는 한 키워드는, 식별자와 동일한 예비 문자 시퀀스이다. 키워드는 컴파일러 예약 된 식별자에 대한 사전 정의 된 특별한 의미입니다. 공통 키워드는 네 다음과 같습니다.
그리고 문 키워드를 관련
클래스 | deinit | 열거 | 신장 |
FUNC | 수입 | 초기화 | 내부의 |
하자 | 연산자 | 개인 | 프로토콜 |
공공의 | 정적 인 | 구조체 | 첨자 |
typealias | VAR |
그리고 문 키워드를 관련
단절 | 경우 | 계속 | 디폴트 값 |
할 | 그렇지 않으면 | 위해 fallthrough | 용 |
면 | 에 | 반환 | 스위치 |
어디에 | 동안 |
식 및 유형 키워드
으로 | dynamicType | 그릇된 | 이다 |
무 | 자기 | 자기 | 슈퍼 |
참된 | _COLUMN_ | _FILE_ | _FUNCTION_ |
_LINE_ |
특정 상황에서 사용되는 키워드
연관성 | 편의 | 동적 | didSet |
최후의 | 취득 | 삽입 사 | 입출력 |
게으른 | 좌회전 | 돌연변이 | 없음 |
nonmutating | 선택 | 재정의 | 후위 |
우선 순위 | 접두사 | 프로토콜 | 필요 |
권리 | 세트 | 유형 | 소유되지 않은 |
약한 | willSet |
스위프트 공간
스위프트는 자바로 완전히 공백을 무시하고, 공간의 스위프트의 사용이 특정 요구 사항이 C / C ++와 같은 언어가 아니라 파이썬과는 달리 덜 엄격한 요구 사항을 들여.
스위프트에서, 연산자는 변수 나 상수에서 바로 다음에 할 수 없습니다. 예를 들어, 다음의 코드를 설명한다 :
let a= 1 + 2
오류 메시지는 다음과 같습니다
error: prefix/postfix '=' is reserved
아마의하거나 사용이 예약되어 뒤에 앞에 등호와 직접 의미했다.
다음 코드 (계속 공간을주의) 제공하고 있습니다 :
let a = 1+ 2
오류 메시지는 다음과 같습니다
error: consecutive statements on a line must be separated by ';'
스위프트 1+이 문을 통해, (2) 다음 진술했다 믿기 때문입니다.
만 오류를 쓰지 않습니다 이런 식으로 :
let a = 1 + 2; // 编码规范推荐使用这种写法 let b = 3+4 // 这样也是OK的
문자 스위프트
문자 소위,이 변수 할당에 대한 로컬 자신의 유형과 가치에 직접적으로 지적 될 수있는 특정 숫자, 문자열 또는 부울 값을 의미한다. 예를 들어, 다음의 :
42 // 整型字面量 3.14159 // 浮点型字面量 "Hello, world!" // 字符串型字面量 true // 布尔型字面量