검색결과 리스트
Swfit에 해당되는 글 14건
- 2017.08.04 4. Swift 배열 (Array)
- 2017.08.04 3. Swift 연산자
- 2017.08.04 2. Swift 기본 문법
- 2017.08.04 1. Swift 특징 및 주요 기능
글
4. Swift 배열 (Array)
Swfit
2017. 8. 4. 11:44
4. Swift 배열 (Array)
- 배열은 일련의 순서를 가지는 리스트 형식의 값을 저장하는 자료형 이다.
- 배열에 입력되는 개별 아이템들은 모두 각각의 순서가 있고 이순서를 일련번호, 즉 인덱스 라고 부른다.
- 0부터 시작 하여 아이템이 추가될 때마다 차례로 증가한다.
- 배열에 저장할 아이템의 타입에는 제약이 없지만 , 하나의 배열에 저장하는 아이템 타입은 모두 같아야 한다.
- 선언 시 배열에 저장할 아이템 타입을 명확히 정의해야 함.
- 배열의 크기는 동적으로 확장할 수 있음
- 배열의 선언과 할당
var cities = [“서울”,”뉴욕”,”부산”]
// 변수 cities 에 서울,뉴욕,부산 배열이 할당 되어서 추가되는 배열의 값은 문자열 값만
추가 될 수 있다.
- 리터럴(Literal)
-리터럴은 값 자체를 이야기합다. 값이 변수나 상수에 담긴 형태가 아니라 그에 저장되는
값 자체를 리터럴이라고 한다. 아래 예에서 180이라는 값 자체가 리터럴이다.
let size = “180” //사이즈 변수에 180이라는 리터럴 대입
var name:[String] = ["설현","김사랑","강민경"]
for row in name {
let index = name.index(of: row)
print("\(index) 의 데이터는 \(row)")
}
Optional(0) 의 데이터는 설현
Optional(1) 의 데이터는 김사랑
Optional(1) 의 데이터는 강민경
- 배열 선언형태
- var name = [String]( )
- var name : [String]
- name = [String]( )
- name = [ ]
- var name:String = [ ]
- 배열 아이템 동적 추가
- apend
- name.append(“성소”)
- insert
- name.insert(“미나” , at 1) // 설현 , 미나 , 김사랑 , 강민경
- append(contentsOf)
- name.append( contentsOf : [ “하니”,”소율” ] )
// ["설현", "미나", "김사랑", "강민경", "하니", "소율"]
name[0…2] // ["설현", "미나", “김사랑"]
✅ 배열 순회 탐색 방법
let arr = ["11","22","33","44","55"]
let arr2 = ["a","b","c","d","e"]
let arr3 = ["가","나","다","라","마"]
for i in 0..<arr.count {
print(arr[i])
}
for j in arr2 {
print(j)
}
for row in arr3 {
let index = arr3.index(of: row)
print("\(index!)번째 배열 원소는 \(row) 입니다.")
}
결과 값
11
22
33
44
55
a
b
c
d
e
0번째 배열 원소는 가 입니다.
1번째 배열 원소는 나 입니다.
2번째 배열 원소는 다 입니다.
3번째 배열 원소는 라 입니다.
4번째 배열 원소는 마 입니다.
'Swfit' 카테고리의 다른 글
6. Swift 튜플 (Tuple) (0) | 2017.08.04 |
---|---|
5. Swift 집합 (Sets) (0) | 2017.08.04 |
3. Swift 연산자 (0) | 2017.08.04 |
2. Swift 기본 문법 (0) | 2017.08.04 |
1. Swift 특징 및 주요 기능 (0) | 2017.08.04 |
글
3. Swift 연산자
Swfit
2017. 8. 4. 11:42
3. Swift 연산자
- 산술 연산자
let a = 10 // 10
let b = 5 // 2
- 단항 연산자
-a // -10
-b // -5
- 이항 연산자
a + b // 12
a - b // 8
a * b // 20
a / b // 5
a % b // 0
- 비교 연산자
a < b // a가 b보다 작으면 true, 아니면 false
a > b // a가 b보다 크면 true, 아니면 false
a <== b // a가 b보다 작거나 같으면 true, 아니면 false
a >= b // a가 b보다 크거나 같으면 true, 아니면 false
a == b // a가 b와 같으면 true, 아니면 false
a != b // a가 b와 같지 않으면 true, 아니면 false
- 논리 연산자
!(NOT) // !a : a가 true 이면 false , false 이면 true 반환
&& (AND) // a && b : a와 b 둘 중 하나라도 false 면 false 반환
|| (OR) // a || b : a 또는 b 둘 중 하나라도 true 이면 true 반환
둘다 false 이면 false 반환
- 범위 연산자
1...5
- 반 닫힌 범위 연산자
1..<5 O // 1에서 5로 한방향으로만 나타낸다
1>..5 X // 반대로는 오류가 발생한다
- 대입연산자
a = 1
a += 1
a -= 3
a *= 3
a /= 3
a %= 3
a <<= 3
a >>= 3
a &= b
a ^= b
a |= b
'Swfit' 카테고리의 다른 글
6. Swift 튜플 (Tuple) (0) | 2017.08.04 |
---|---|
5. Swift 집합 (Sets) (0) | 2017.08.04 |
4. Swift 배열 (Array) (0) | 2017.08.04 |
2. Swift 기본 문법 (0) | 2017.08.04 |
1. Swift 특징 및 주요 기능 (0) | 2017.08.04 |
글
2. Swift 기본 문법
Swfit
2017. 8. 4. 11:40
2. Swift 기본 문법
- 스위프트는 변수나 상수 이름에서 대소문자를 구분한다. 대문자 A 와 소문자 a 는 서로 다른 문자이다.
var a = 30
var A = 30
- 함수와 메소드, 인스턴스명의 첫 글자는 소문자로
- 클래스와 구조체, 프로토콜 등 객체의 첫 글자는 대문자
- 구문 끝의 ;(세미콜론)은 옵션이다. - (Object-C 에서는 모두 세미콜론으로 마감 한다)
- 반복문
- For 반복문
for <루프 상수 > in <순회 대상> {
<실행할 구문>
}
- 순회대상
- 배열
- 딕셔너리
- 집합
- 범위 데이터
- 문자열
===========================
예) for row in 1…5 {
print(row)
}
출력 1
2
3
4
5
===========================
예) for row in 1…9 {
print(“2 x \(row) = \(row *2)”))
}
출력 2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
===========================
예) var lang =“swift"
for char in lang.characters {
print(“개별 문자는 \(char) 입니다”)
}
출력 개별 문자는 s 입니다.
개별 문자는 w 입니다.
개별 문자는 i 입니다.
개별 문자는 f 입니다.
개별 문자는 t 입니다.
===========================
예) for i in 1..<10 {
for j in 1..<10{
print("\(i) x \(j) = \(i*j)")
}
}
//구구단 출력
- while 반복문
while <조건식 > {
<실행할 구문>
}
- 실행 횟수가 명확하지 않을때
- 직접 실행해보기 전까지는 실행 횟수를 결코 알 수 없을 때
- 실행 횟수를 기반으로 할 수 없는 조건일 때
===========================
예)
var n = 2
while n < 1000 {
n *= 2
}
print("\(n)")
// 출력 n = 1024
- repeat while 반복문
repeat {
<실행할 구문>
}
while <조건식>
- 실행블록이 한번 수행된 상태에서 조건식을 평가하므로 비록 조건식의 결과가 false라고 할지라도 이미 한번의 구문이 실행 되어 진다.
- while 구문을 사용해야 하는 조건 중에서 반드시 한 번은 실행 할 필요가 있는 조건에 사용된다.
- 조건문
- if 문
if <조건식> {
<조건이 참 일때 실행할 구문>
}else {
<조건이 거짓일때 실행할 구문>
{
- guard 문
guard <조건식 또는 표현식> else {
<조건식 또는 표현식의 결과가 false 일 때 실행될 코드>
{
예)
fun divide(base : Int) {
guard base != 0 else {
print(“연산할 수 없습니다.”)
return
}
let result = 100 / base
print(result)
}
// base 값이 0 이상이면 guard 통과하여 구문이 실행되고
0 이면 리턴 된다.
- switch 문
switch <비교 대상> {
case <비교 패턴1> :
<비교 패턴 1이 일치했을 때 실행할 구문>
case <비교 패턴2> ,<비교 패턴3>:
<비교 패턴 2 또는 3 이 일치했을 때 실행할 구문>
default :
<어느 비교 패턴과도 일치하지 않았을 때 실행할 구문>
}
===========================
예) let val = 2
switch val {
case 1 :
print(“일치 값 은 1”)
case 2 :
print(“일치 값 은 2”)
case 2 :
print(“일치한 값 2가 더 있습니다.”)
default :
print(“일치 한 값이 없습니다.”)
}
// 출력 = 일치 값 은 2
===========================
예) let sampleChar : Character = “a"
switch sampleChar {
case “a” :
case “A” :
print(“글자는 A 입니다.”)
case 2 :
print(“일치한 값 2가 더 있습니다.”)
default :
print(“일치 한 값이 없습니다.”)
}
// 출력 = 일치 값 은 2
// “a” 에 아무 값이 없어서 failthrough 가 되어 다음 케이스가 실행된다
- 제어 전달 문
- break
- for row in 0…5 {
if row > 2 {
break
}
print(“\(row) was executed!”)
}
// if 문 조건 row 가 2보다 클 경우 break 걸려 반복을 중지 한다.
// 출력
0 was executed!
1 was executed!
2 was executed!
- continue
- for row in 0…5 {
if row < 2 {
continue
}
print(“\(row) was executed!”)
}
// if 문 조건 row 가 2보다 작을 경우 continue 걸려 루프를 다시 시작 한다.
print 는 하지 않는다.
// 출력
2 was executed!
3 was executed!
4 was executed!
5 was executed!
'Swfit' 카테고리의 다른 글
6. Swift 튜플 (Tuple) (0) | 2017.08.04 |
---|---|
5. Swift 집합 (Sets) (0) | 2017.08.04 |
4. Swift 배열 (Array) (0) | 2017.08.04 |
3. Swift 연산자 (0) | 2017.08.04 |
1. Swift 특징 및 주요 기능 (0) | 2017.08.04 |
글
1. Swift 특징 및 주요 기능
Swfit
2017. 8. 4. 11:28
1. Swift 특징 및 주요 기능
- 스위프트의 특징
- 스위프트는 파이썬이나 자바스크립트처럼 동적 바인딩을 채용하고 있는 언어는 아니다. C,C++,Object-C, java 처럼 정적 바인딩을 채용하고 있는 언어이다.
- 데이터 타입 추론 기능에 의해 컴파일러가 알아서 변수와 상수의 타입을 결정하기 때문에 마치 동적 바인딩 언어인 것 처럼 착각되기도 하지만 , 기본적으로 스위프트 는 정적 바인딩 언어이다.
- 스위프트는 데이터타입 구분이 업격하다. 변수와 상수는 컴파일 단계에서 미리 정의가 되어 있어야 한다.
- 스위프트에서는 같은 프로젝트 내에 작성된 객체들은 반입 과정 없이 참조할 수 있다.
- import 구문은 UIKit ,Foundation 등의 프레임워크나 라이브러리 정도에만 사용하게 되어 생산성을 향상 할 수 있다.
- 스위프트에서 차용하고 있는 주요 기능들
- 딕셔너리 (해시 테이블) - 자바스크립트 , 파이썬
- 데이터 타입 추론 - 함수형 프로그래밍 언더
- 데이터 구조체 타입 선언 - C# , 자바
- 문자열 템플릿 - 콜드 퓨전 , JSP , 파이썬 등..
- 선택 사항인 세미콜론 - 자바스크립트와 파이썬
- 프로토콜(인터페이스) - 자바와 C#
- 튜플 - 리스프와 파이썬
- 자동참조 (가비지 콜렉터와 비슷) - 자바 , C# , Object-C
- 부호 있는 정수와 부호 없는 정수 - C# , Object-C
- 클로저 - 리스프와 스킴에서 자바스크립트까지
- 스위프트의 구조적 특징
- 빠름 - 복합정렬 연산에서 Object-C 보다 빠른 성능을 나타낸다. 애플에서 고성능 앱을 만들기 위해 GCC 대신 LLVM 컴파일러를 사용하고 있다.
- 설계에 의한 안정성 - 변수나 상수는 반드시 선언한 후에 사용하도록 강제하였으며, 타입 추론 기능에 의해 변수의 초기값을 기준으로 타입을 정의 하며 데이터 입력에 대한 안전성을 높였다. 개발자가 정의하지 않은 배열 값에 승인하지 않은 값들이 주입될 수 없도록 Array bounds check 기능이 추가 되었다. 포인터에 직접 접근을 차단하였고 , 클래스를 통해 간접적으로만 래퍼런스를 참조할 수 있도록 제한하였다. 스위프트는 ARC (Auto Referencing Counter) 를 이용하여 자동으로 메모리 관리하여 메모리 누수 현상에 대해 안전성을 높였다.
- 스위프트의 현대적
- 스위프트는 파이썬 언어에 기반을 둔 읽고 쓰기 쉬운 문법을 채택하였다.
'Swfit' 카테고리의 다른 글
6. Swift 튜플 (Tuple) (0) | 2017.08.04 |
---|---|
5. Swift 집합 (Sets) (0) | 2017.08.04 |
4. Swift 배열 (Array) (0) | 2017.08.04 |
3. Swift 연산자 (0) | 2017.08.04 |
2. Swift 기본 문법 (0) | 2017.08.04 |