SWIFT

Language/Swift

Swift - 함수 기본

Swift에서의 함수는 Kotlin과 Java를 섞어놓은 듯한 모습이라고 생각한다. 파라미터를 나열할 때, 이름 : 자료형 방식으로 작성하는 부분이 있기도 하고, 리턴이 없는 함수는 Void라는 키워드가 들어가기도 한다. 파라미터가 없는 함수는 JavaScript 분위기가 나기도 한다. 1. 함수 선언의 기본 형태 func 함수이름 (파라미터 이름: 파라미터 타입) -> 리턴타입 { //함수 구현 return 리턴 값 } 2. 반환 값이 없는 함수 func 함수이름(파라미터 이름: 파라미터 타입) -> Void { //함수 구현 return //아예 생략이 가능하다 } func 함수이름(파라미터 이름: 파라미터 타입) { //함수 구현 } //Void도 생략이 가능하다 3. 매개변수가 없는 함수 func..

Language/Swift

Swift - 컬렉션 타입(Collection Type) - Array, Dictionary, Set

개인적으로 여러 언어를 접하면서 가장 표현법이 다양해서 헷갈리는 친구들이다. 1. Array (배열) Swift에서 배열을 선언하는 문장을 본 첫 느낌은 Kotlin에서의 ArrayList같다는 느낌을 가장 먼저 받았다. 그런데 여기에 배열을 한 스푼추가한... 그런 느낌? 를 쓰다가도 []를 쓰고 뭔가 어색했다. var integers: Array = Array() //var integers: Array = [Int]() //var integers: Array = [] //var integers: [Int] = Array() //var integers: [Int] = [Int]() //var integers: [Int] = [] //var integers = [Int]() //위의 주석들이 Array를..

Language/Swift

Swift - Any, AnyObject, nil

1. Any Swift의 모든 타입을 지칭하는 키워드이다. var a: Any = 10 a = "어떤 타입이든 가능" a = 12.34 let b: Double = a //error //Any 타입에 Double형을 할당해두었더라도 Any는 Double 타입이 아니기 때문에 할당할 수 없다. 2. AnyObject 모든 클래스 타입을 지칭하는 프로토콜이다. class Student {} var firstStudent: AnyObject = Student() firstStudent = 123 //error //AnyObject는 어떤 클래스의 인스턴스라도 할당 가능하지만 값은 할당할 수 없다. 3. nil 없음을 의미하는 키워드로 다른 언어에서의 Null과 유사하다. var abc: Any = 100 va..

Language/Swift

Swift - 변수, 상수

1. 변수 먼저 변수는 var 키워드를 사용해 선언한다. var a: Int = 0 var a1 = 0 var varStr = "값 변경이 가능" varStr = "Hello" var name : String name = "Kim" ㄱ. 변수 이름과 타입, 그리고 값까지 모두 작성해 선언할 수 있다. ㄴ. 값의 타입이 명확하다면 타입을 생략하고 선언할 수 있다. ㄷ. 추후 다른 값을 할당할 수 있다. ㄹ. 변수를 선언해두고 나중에 값을 할당할 수도 있다. 2. 상수 먼저, 상수는 let 키워드를 사용해 선언한다. let b: Int = 1 let b1 = 1 let letStr: String = "값 변경이 불가" letStr = "Hello" //error let nickName: String nick..

Language/Swift

Swift - 명명법, 콘솔 로그, 문자열 보간법

오늘은 야곰님의 Swift 기초 강의를 부스트코스에서 수강하고 정리해보는 글을 써보려한다. 1. 명명법 다른 언어를 배울 땐 네이밍 컨벤션(Naming Convention) 이런 말도 들었던 것 같은데 정확하진 않지만, 함수, 메소드, 변수, 상수(function, method, variable, constant)에는 Camel Case로 이름을 작성하고 타입(Type : class, struct, enum, extension ...)에는 Upper Camel Case로 이름을 작성한다. 그런데 사실 나는 Upper Camel Case라는 용어보단 Pascal Case가 더 익숙하다. Java와 Kotlin을 배울 때 가르쳐주신 교수님이 Pascal Case라고 알려주셨기 때문이다. 구글에 검색해보니 둘..

프로그래머스

가운데 글자 가져오기 스위프트(Swift)

이번엔 코틀린으론 쉽게 풀었던 가운데 글자 가져오기 문제를 풀어봤다. 야곰님 부스트코스 강의를 들으며 하나씩 풀어보고 있는데 코틀린에서 문자열 템플릿을 사용한 것처럼 여기서는 문자열 보간법을 사용해 풀어보았다. 문제 오죽 쉬웠으면 내가 프로그래머스에서 가장 먼저 풀어본 문제인가 싶다. 하지만, 스위프트로 풀기엔 코틀린보다 까다로웠다. 코틀린에서는 String에서의 index를 정수로 가져왔는데 Swift에서는 같은 방식으로 불러올 수 없었다. 풀이 if-else 구문을 사용해 문자열의 길이가 짝수인지 홀수인지 먼저 검사하고 짝수라면 중앙의 2글자, 홀수라면 정중앙의 1글자만 가져오면 된다. 일단, 문자 하나를 인덱스를 통해 가져오려면 코틀린처럼 s[index]와 같은 형식은 불가능했기 때문에 다른 함수를..

프로그래머스

나머지가 1이 되는 수 찾기 스위프트(Swift)

오늘은 전에 풀었던 문제의 재탕이다. 왜 이런 쓸데없는 짓을 하냐고 할 수도 있지만 나름 이유가 있었다. 추후, 따로 글을 작성해보겠다.. 문제 풀이 가장 앞에서 말했듯이 이미 코틀린으로 한 번 풀었던 문제지만 그대로 Swift언어로 작성해보았다. 먼저, 기존에 쓰던 코틀린과 달리 for문을 사용할 때 조건식에 괄호가 필요없다. 게다가, 코틀린에서는 for문의 실행문이 1줄이라면 중괄호를 생략할 수 있었지만 Swift는 무조건 중괄호가 필요했다. 생각보단 언어가 어색하다. 그래도 React Native를 접해본 경험은 있어 어색하지 않으리라 생각했는데 React Native에 관심이 없어서 그랬는지.. 암튼 조금 친해질 시간이 필요한 것 같다.

BonusTrack02.dev
'SWIFT' 태그의 글 목록 (2 Page)