-
안녕하세요. 그린입니다!
이번 포스팅에서는 짧게나마 랜덤함수에 대해 포스팅을 하겠습니다.
제가 랜덤함수를 찾아보고 학습하게된 계기는 제 블로그의 Swift > 개발 메뉴에서 확인할 수 있듯이
묵찌빠 게임을 프로그래밍하는 도중 컴퓨터의 묵찌빠를 랜덤하게 받아와야하는 일이 생겼습니다.
이에 차근차근 스위프트 문법을 학습하던 저는 우선 구글링을 통해 스위프트에서 랜덤함수 사용에 대해 학습을 해봤습니다.
자 그럼 스위프트에서 랜덤함수를 정의하고 원하는 조건에 맞게 랜덤값을 도출해내는 과정을 같이 진행해보시죠~!
스위프트 4.2 버전 이후 부터 모든 정수와 실수 타입은 자체적인 랜덤함수를 제공해주도록 업데이트 되었습니다!
그래서 이 포스팅에서는 4.2버전 이후와 이전으로 둘 다 알아보겠습니다~!!
[Swift 4.2 이후]
간단하게 let num = .random(in: 1...6) 이라고 명시해주면 1부터 6사이의 Int 난수를 생성합니다.
업데이트 이후 참 간단해졌습니다..!
[Swift 4.2 이전]
Swift에서 제공하는 랜덤함수는 크게 3가지가 있습니다.
-. arc4random()
-. arc4random_uniform(UInt32)
-. drand48()
그럼 하나씩 알아보겠습니다!
1. arc4random()
해당 함수는 리턴타입이 UInt32입니다. 즉 0부터 2^32-1 숫자까지의 범위를 가집니다.
그리하여 해당 함수는 0과 2^32-1 사이의 랜덤한 난수를 반환합니다..!
2의 32제곱은 대략 4,294,967,296 이정도네요..ㅎㅎ (42억정도.. 이 이상 넘어갈일은 잘 없겠죠?)
2. arc4random_uniform(UInt32)
해당 함수는 위와 동일하게 기본 리턴 타입이 UInt32입니다.
파라미터도 UInt32 범위의 값만 받습니다.
이걸 쓰는 예시는 만약 우리가 0부터 5까지의 난수를 생성해주고 싶다면
arc4random_uniform(6) 이라고 함수를 정의해줍니다.
그럼 0~5까지의 난수가 생성됩니다.
저는 헷갈려서 arc4random() 함수에 유니폼, 즉 옷을 입혀 원하는 숫자의 범위만 난수생성을 해주는것으로 기억하고 있습니다!!
그럼 간단하게 정의하는 예시를 보겠습니다.
-. 참고로 만약 터미널에서 실습을 해보실 경우 import Foundation을 하여 줘야 기본 함수들을 사용할 수 있습니다.
만약 여기서 1부터 6까지 주사위처럼 난수를 생성하고 싶으면 간단합니다.
위와 같이 함수 뒤 +- 를해서 값의 범위를 지정해서 난수를 생성할 수 있습니다.
3. drand48()
해당 함수는 리턴타입이 Double입니다. 즉 0부터 1.0 사이의 난수를 리턴합니다.
그게 다입니다^^
만약 위처럼 함수 뒤 +- 로 범위를 지정해줄수도 있겠죠?
이상으로 이번 포스팅에서는 스위프트에서 기본적으로 제공하여 사용되는 랜덤함수에 대해 알아봤습니다.
게임이나 여러 방면에서 난수 생성은 꼭 필요하고 언젠가 쓰이는 항목이니 익혀두시면 좋을것 같습니다~!!
그럼 다음 포스팅에서는 본 문법 학습 커리큘럼 하던 그대로 만나요~^^
감사합니다!
'Swift' 카테고리의 다른 글
접근레벨 및 이니셜라이저 관련 (0) 2020.11.19 객체지향 프로그래밍 패러다임 (0) 2020.11.08 구조체와 클래스 (0) 2020.11.04 옵셔널 (0) 2020.11.03 특수 기호와 문자 읽는법 (0) 2020.11.02