Language

Language/Swift

Swift - 함수 고급

1. 파라미터 기본값 파라미터에 기본으로 전달될 값을 미리 지정해둘 수 있다. 여기서 기본값을 지정할 파라미터는 파라미터 목록 중 뒤쪽에 위치하는 것이 좋다고 한다. func 함수 이름(파라미터 이름: 파라미터 타입, 파라미터 이름: 파라미터 타입 = 파라미터 기본값) -> 리턴 타입 { //함수 구현 return 리턴값 } //게다가 함수 호출 시 기본값이 있는 파라미터는 생략이 가능하다 2. 전달인자 레이블(Argument Label) 사용자 입장에서 함수 호출 시 파라미터 역할을 더 명확히 알 수 있도록 할 때 사용한다. 전달인자 레이블을 변경해 동일한 이름의 함수를 중복으로 생성 가능하다. 이 부분이 제대로 이해가 안됐는데 밑에 코드로 다시 적어보겠다. func 함수 이름(전달인자 레이블 파라미터..

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 - 기본 데이터 타입

기본 데이터 타입의 종류 Bool Int, UInt Float, Double Character, String 1. Bool true, false만을 값으로 가지는 타입이나 C언어나 다른 언어에서 사용했던 것처럼 1을 true, 0을 false로 생각하고 사용하면 컴파일 에러가 발생한다. var boolA = true boolA = 1 //error 2. Int, UInt Int : 정수 타입. 현재는 기본적으로 64비트 정수형이다. UInt : 양의 정수 타입. 현재는 기본적으로 64비트 양의 정수형이다. var intA = -10 intA = 10.1 //error var uIntB: UInt = 1 uIntB = -1 //error Int형에는 당연히 실수형을 할당할 수 없고, UInt형에는 당연히 ..

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라고 알려주셨기 때문이다. 구글에 검색해보니 둘..

Language/Kotlin

Android에서 Kotlin을 사용할 때 이점(JetBrains피셜)

먼저 최근에 프로그래머스 거의 문제 풀이글만 올리다 Kotlin에 대해 소개를 할까 생각이 들었다. 프로그래머스 문제를 해결하면서 필요한 메소드나 확장 함수 등을 사용하려고 할 때 나는 주로 코틀린 공식 홈페이지에서 Docs를 찾는 편인데 기본기가 모자라 가끔 알아볼 수 없는 것들이 몇 개 있기 때문이다. 위 제목은 내가 몇몇 회사를 지원하면서 직접 받은 질문 중 하나이기도 하다. 일단, 나는 안드로이드 직군을 희망하고 있는 상태이므로 안드로이드에서 코틀린을 사용할 때의 장점을 적어보려 한다. 시작해보겠다. 1. 가독성이 좋은 적은 코드 사용 이건... 딱히 설명이 구체적이지 않아 스킵... 2. 성숙한 언어와 환경(직역) 2011년에 만들어진 후, 코틀린은 언어뿐만 아니라 전체 생태계까지 지속적으로 개..

Language/Java

자바의 상속 - 1

오늘은 자바에서 가장 중요한 것들 중 하나인 상속에 대해 적어보려 한다. 먼저 상속이 뭘까? 상속은 다른 클래스의 설계도를 가져와 새로운 기능을 추가하는 기법이라고 할 수 있겠다. 이 상속 관계에 대한 호칭은 언어마다 다른데 주로 사용되는 호칭을 몇 개 나열해보면 상위 - 하위 부모 - 자식 슈퍼 - 서브 정도가 있겠다. 자바에서 공식적으로 사용하는 호칭은 슈퍼 - 서브인데 개발자들은 부모 - 자식으로도 많이 얘기한다고 들었다. 상속받은 클래스(자식)의 객체를 만들면 자동으로 상속해준 클래스(부모)의 객체도 내부에 같이 생성된다. 이러다 보니 내가 상속받아온 클래스의 멤버를 마음대로 사용 가능하다. 하지만, 저번 글에서도 소개했듯이 객체지향 프로그래밍에서는 멤버 변수를 직접 .연산자를 통해 제어하는 것을..

Language/Java

자바 클래스 안에 다른 클래스의 참조 변수가 있는 상황

오늘은 제목 그대로의 상황을 살펴보도록 하겠다. 먼저 Main.class와 별개로 Person, Member라는 클래스를 만들었고 Member 클래스에는 Person 클래스의 참조변수가 있다고 염두해두자. 이 예제는 임의로 같은 패키지안에서 작업했다. 먼저 Person 클래스이다. public class Person { String name; int age; //생성자 : Constructor public Person() { name = "익명"; age = 0; } public Person(String name, int age) { this.name = name; this.age = age; } //멤버값을 출력하는 메소드 void show() { System.out.println("name : " +..

BonusTrack02.dev
'Language' 카테고리의 글 목록 (4 Page)