본문 바로가기

전체 글

(47)
[SWIFT] 비트연산자 메모리 비트 단위로 직접적인 논리연산을 하거나, 비트 단위 이동시에 사용하는 연산 장점) 연산속도가 빠름 - 직접적으로 메모리의 실제 비트를 컨트롤 --> 게임과 같은 빠른 처리를 요구할 때 사용 짧은 코드로 복잡한 로직을 구현 가능한 경우가 있음 스위프트 비트연산자 6가지 (비트 논리 연산자) ~ : Bitwise NOT Operator(비트와이즈 낫 연산자) == 비트논리부정연산자, 단항연산자의 형태로 사용 (~a) 0은 1으로 , 1은 0으로 & : Bitwise AND Operator(비트와이즈 앤드 연산자) == 비트논리곱연산자, 이항연산자의 형태로 사용 (a&b) 두개의 메모리 비트 모두가 1일때만 1을 반환 | : Bitwise OR Operator(비트와이즈 오어 연산자) 비트 논리합연산자..
[SWIFT] 단락 평가(Short-circuit Evaluation) 스위프트의 논리 평가식은 "단락 평가"방식을 사용 단락평가? 논리 평가식에서 결과 도출에 필요한 최소한의 논리식인 평가 ( 참을 찾을 때 까지만 실행, 참을 찾으면 나머지 표현식은 평가하지 않음) === 최소한의 코드만 실행 - Short-circuit evaluation 논리연산자 우선순위 1) && 2) || 단락평가에서 주의할 점 사이드 이펙트 - 함수 내에서 일부 외부 변수의 값을 변경 시키는 것 단락평가시, 사이드 이펙트가 발생하면 의도치 않은 결과가 나타날 수 있기 때문에 조심해야한다
[SWIFT] 오버플로우 스위프트에서는 오버플로우를 기본적으로 허락하지 않음 ===> 에러발생(크래시) 오버플로우의 방향은 양(positive)의 방향, 음(nagative)의 방향을 모두 의미 특정한 경우에, 특정패턴을 구현하기 위해 오버플로우를 허용하는 경우가 필요한데, 이런 경우 활용을 위해 "오버플로우 연산자"를 마련해 놓았음 오버플로우 연산자 &+ : 오버플로우 더하기 연산자 &- : 오버플로우 빼기 연산자 &* : 오버플로우 곱하기 연산자 - 앰퍼샌드(&)기호가 붙어있음 - 일반 연산자 + - 처럼 사용하면 됨
[SWIFT] 고급연산자(Advanced Operators) 스위프트의 숫자 리터럴을 표기하는 방법 var num: Int = 25 // 2진법/8진법/16진법의 수도 직접 써 넣을 수 있음 num = 0b00011001 num = 0o31 num = 0x19 // 큰숫자는 읽기 쉽게하기위해 언더바를 붙이는 것도 가능 // (단순히 언더바를 읽지않음) num = 1_000_000 num = 10_000_000 num = 10000_0000
[SWIFT] 문자열의 대소문자 변형 Swift는 대문자와 소문자를 다른 문자로 인식 (유니코드 다름) 전체 소문자로 바꾼 문자열 리턴 (원본 그대로) 변경하고자 하는 String.lowercased() 전체 대문자로 바꾼 문자열 리턴 (원본 그대로) 변경하고자 하는 String.uppercased() 대문자로 시작하는 글자로 리턴하는 속성 (원본 그대로) 변경하고자 하는 String.capitalized String 속성 파악하기 count 변경하고자 하는 String.count isEmpty 변경하고자 하는 String.isEmpty -- 문자열은 길이를 기준으로 빈 문장열을 판단 (nil이 아님 : String?타입 사용 불가능) 문자열 접근 String[인덱스] --- 서브스크립트 문법으로 접근 가능 / 인덱스 활용 String 인덱..
[SWIFT] 문자열을 배열로, 배열을 문자열로 (String to arr, arr to String) 문자열 자체도, 여러개의 문자를 담고있는 데이터바구니 ==> 쉽게 배열로 변형이 가능하고, 반대 변형도 쉬움 String to arr String ====> [String] 문자열 배열 ⭐️고차함수 map 사용 var 변수명: [String] = 변경하고자 하는 String.map { String($0) } String ====> [Character] 문자 배열 Array() 사용 var 변수명: [Character] = Array(변경하고자 하는 String) arr to String [String] ====> String ⭐️joined 함수 사용 var 변수명 = 변경하고자 하는 Array.joined() [Character] ====> String String() 사용 var 변수명 = Stri..
[SWIFT] 서브스트링 (Substring) 문자열의 메모리 공간의 공유개념이다. (포인터 느낌) 스위프트가 알아서 내부적으로 최적화시키며, 둘 중 하나의 변수가 변경 된다던지, 새롭게 문자열을 생상한다던지 , 공유할 필요가 없어진다면, 새로운 문자열 메모리 공간을 생성
[SWIFT] 숫자(정수/실수) 등을 문자열로 변환 출력하는 방법 String(format: String, arguments: CVarArg) ---- 문자열 생성자를 활용하는 방법 출력 형식 지정자(Format Specifiers) %d, %D ===> 정수 %2d ===> 두자리로 표현 %02d ===> 두자리로 표현하되, 0포함 %07.3f ===> 일곱자리로 표현하되 0과 .(dot) 포함, (소수점아래는 3자리) %@ ===> 문자열 형식 $1$@ ===> 문자열 첫번째 파라미터 사용 예시 ) String(format: "%d", 7) ==> 7 NumberFormatter() (클래스를 이용) "숫자" "문자" 변환을 다루는 클래스 설정 가능 속성 .roundingMode 반올림모드 .maximumSignificantDigits 최대자릿수 .minimumSi..