c o d i n g . . ๐Ÿ‰/ios

[์ธํ”„๋Ÿฐ] ์•„์ดํฐ ์•ฑ ๊ฐœ๋ฐœ(2)

H J 2022. 6. 20. 04:39

์˜ค๋Š˜์€ swift์˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•๋ถ€ํ„ฐ ํ•จ์ˆ˜๊นŒ์ง€ ! ๐Ÿ˜ธ


๐Ÿ‰ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ๐Ÿ‰

๋ณ€์ˆ˜ ์ƒ์ˆ˜

var r = 3.123// ๋ณ€ํ•˜๋Š” ๊ฐ’
let p = 3.1415926535 // ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ’

var message : String = "ํ•˜์ด"
// Bool, Int, String, Float, Double ...

cmd + click โ†’ ๋ณ€์ˆ˜๋ช… ํ•œ๋ฒˆ์— ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ

๋ฐ์ดํ„ฐ์˜ ์ž๋ฃŒํ˜•์„ ๋ณด๊ณ  ํƒ€์ž… ์ถ”๋ก  โ†’ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฉด ์ž๋ฃŒํ˜• ๋ช…์‹œ ํ•„์š”

ํ•œ๋ฒˆ ์ž๋ฃŒํ˜•์ด ์ •ํ•ด์ง€๋ฉด ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅ

Intํ˜•์€ ํ”Œ๋žซํผ์— ๋”ฐ๋ผ ๋ฒ”์œ„๊ฐ€ ๋‹ฌ๋ผ์ง

Int8, 16, 32, 64๋กœ ๋‹ค์–‘ํ•œ๋ฐ ์‚ฌ์šฉ๊ฐ€๋Šฅ ๋ฒ”์œ„๊ฐ€ ๋„˜์–ด๊ฐ€๊ฒŒ ๋˜๋ฉด ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋ฐœ์ƒ

Int๋กœ ์„ ์–ธํ•˜๊ฒŒ ๋˜๋ฉด ์ž์‹ ์˜ cpu์— ๋งž๊ฒŒ ์ž๋™์ ์œผ๋กœ ์„ค์ •๋จ

 

ํ•จ์ˆ˜

// ํ•จ์ˆ˜ ์„ ์–ธ

func circleArea(r: Double) -> Double {
	return (r * r * 3.1415926535)
}

// ํ•จ์ˆ˜ ์‚ฌ์šฉ
circleArea(r: 3.123)

 

class

class Circle {
	var radius = 3.123
	let pi = 3.1415926535

	func circleArea(r: Double) -> Double {
		return (r * r * 3.1415926535)
	}
}

๊ด€๋ จ์ด ์žˆ๋Š” ๊ฒƒ๋ผ๋ฆฌ ๋ฌถ๊ณ  ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ์‚ฌ์šฉ

๊ธฐ์กด์˜ class ์‚ฌ์šฉ or ์ง์ ‘ class ๋งŒ๋“ค์–ด ์‚ฌ์šฉ

 

์—ฐ์‚ฐ์ž

  • ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž ( +, - , *, /, %)
  • ๋น„๊ต ์—ฐ์‚ฐ์ž ( <, >, <=, >=, ==, != )
  • ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž ( &&, ||, ! )

 

์กฐ๊ฑด๋ฌธ

  • if๋ฌธ
var num = 10;

if (num < 5)
{
    print("5๋ณด๋‹ค ์ž‘์Šต๋‹ˆ๋‹ค !")
}
else if (num == 5)
{
    print("5์ž…๋‹ˆ๋‹ค !")
}
else
{
    print("5๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค !")
}

 

  • switch๋ฌธ
var num = "์žฅ๋งˆ";

switch num
{
case "๋ง‘์Œ":
    print("๋ง‘์Œ")
case "ํ๋ฆผ":
    print("ํ๋ฆผ")
case "๋น„", "์žฅ๋งˆ":
    print("๋น„๋‚˜ ์žฅ๋งˆ")
default:
    print("๋ชฐ๋ผ์šฉ ~")
}

c์–ธ์–ด์™€ ๋‹ค๋ฅธ ์  1. break๋ฌธ ํ•„์š” ์—†์Œ 2. ํ•œ case๋‹น ์—ฌ๋Ÿฌ ์กฐ๊ฑด ๊ฐ€๋Šฅ 3. default ์—†์œผ๋ฉด ์˜ค๋ฅ˜ ๋ฑ‰์Œ

 

๋ฐ˜๋ณต๋ฌธ

  • for๋ฌธ
for i in 1...10
{
    print(i)
}

for i in stride(from: 1, to: 10, by: 2)
{
    print("๊ฐ’์€: \\(i)")
}

for i in stride(from: 10, to: 1, by: -2)
{
    print("๊ฐ’์€: " + String(i))
}

 

  • while๋ฌธ + repeat while๋ฌธ
var i = 0

while (i < 10)
{
    i += 1
    print(i)
}

i = 0
repeat
{
    i += 1
    print(i)
} while (i < 10)

 

๋ฐฐ์—ด

var array = [1, 2, 3, 4]
var evenArray: Array<Int> = [2, 4, 6, 8]
var charArray: [String] = ["one", "two", "three"]

array[0] // ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ -> 1

array.append(5) // ๋ฐฐ์—ด ๋งจ ๋์— 5 ์ถ”๊ฐ€
array.insert(-1, at: 0) // 0๋ฒˆ์งธ ์ธ๋ฑ์Šค์— -1 ์ถ”๊ฐ€
array.remove(at: 0) // 0๋ฒˆ์งธ ์ธ๋ฑ์Šค ์‚ญ์ œ

for i in array
{
    print(i)
}

๋‹ค์–‘ํ•œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ฐฐ์—ด์— ์ถ”๊ฐ€, ์‚ญ์ œ๊ฐ€ ์šฉ์ด

 

๋”•์…”๋„ˆ๋ฆฌ

var dic = [1: "one", 2: "two", 3: "three"] // ํ‚ค: ๋ฐธ๋ฅ˜
var dic1: Dictionary<Int, String> = [1: "one", 2: "two", 3: "three"]

dic[1] // ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ -> one

dic[4] = "four" // ๊ฐ’ ์ถ”๊ฐ€

dic.removeValue(forKey: 4) // ๊ฐ’ ์‚ญ์ œ
dic[3] = nil // ๊ฐ’ ์‚ญ์ œ

dic1.removeAll() // ์ „์ฒด ์‚ญ์ œ, ์ดˆ๊ธฐํ™”

for (key, value) in dic
{
    print("key: \\(key), value: \\(value)")
} // ๋ฐ˜๋ณต๋ฌธ์—์„œ ๋”•์…”๋„ˆ๋ฆฌ ์‚ฌ์šฉ

for key in dic.keys
{
    print(key)
} // ๋ฐ˜๋ณต๋ฌธ์—์„œ ๋”•์…”๋„ˆ๋ฆฌ์˜ ํ‚ค๋งŒ

for value in dic.values
{
    print(value)
}

 


๐Ÿ‰ ํ•จ์ˆ˜ ๐Ÿ‰

๊ธฐ๋ณธ ํ˜•ํƒœ

func hello(name: String) -> String {
    return ("Hello~ " + name)
}

print(hello(name: "mark"))

๋ฐ˜ํ™˜๊ฐ’์ด void์ธ ๊ฒฝ์šฐ ์ƒ๋žต๊ฐ€๋Šฅ

 

๋‹ค์–‘ํ•œ ํ˜•ํƒœ

// ๊ธฐ๋ณธ ํ˜•ํƒœ
func addTwoNum(num1: Int, num2: Int) -> Int {
    return (num1 + num2)
}
addTwoNum(num1: 1, num2: 2)

// ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ ๊ฐ’์ด ์žˆ๋Š” ๊ฒฝ์šฐ
func add100(num1: Int, num2: Int = 100) -> Int {
    return (num1 + num2)
}
add100(num1: 100)
add100(num1: 100, num2: 200) // ์ด๋Ÿฐ ์‹์œผ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ

// ๊ฐ€๋ณ€ ์ธ์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ
func addNums(nums: Int...) -> Int {
    var sum = 0
    for num in nums
    {
        sum += num
    }
    return (sum)
}
addNums(nums: 1, 2, 3, 4, 5)

// ๋ฐ˜ํ™˜๊ฐ’์ด ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ
func myInfo() -> (name: String, age: Int) {
    return ("mark lee", 24)
}
myInfo().name
myInfo().age
print(myInfo())

 

Argument label

func calc(firstNum num1: Int, secondNum num2: Int) -> Int {
    return (num1 + num2)
}

calc(firstNum: 1, secondNum: 2)

// ์–ธ๋”๋ฐ”๋กœ ์ƒ๋žต๊ฐ€๋Šฅ
func calc2(_ num1: Int, _ num2: Int) -> Int {
    return (num1 + num2)
}

calc2(1, 2) // ๋งค๊ฐœ ๋ณ€์ˆ˜๋ช… ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๋งค๊ฐœ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์„ค๋ช…์„ ํ•ด์คŒ

์–ธ๋”๋ฐ”๋กœ ์ƒ๋žต ๊ฐ€๋Šฅ โ†’ ํ•จ์ˆ˜ ํ˜ธ์ถœํ•  ๋•Œ๋„ ์ž…๋ ฅ๊ฐ’๋งŒ ๋„ฃ์„ ์ˆ˜ ์žˆ์Œ

 

inout

func addTwoNum(num1: Int, num2: inout Int) -> Int {
    num2 = 0
    return (num1 + num2)
}

var num1 = 1
var num2 = 2

addTwoNum(num1: num1, num2: &num2)

inout ํ‚ค์›Œ๋“œ ์—†์ด ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์Œ ! โ†’ ์—๋Ÿฌ

inout ํ‚ค์›Œ๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์ฃผ์†Œ ์—ฐ์‚ฐ์ž ๋ถ™์—ฌ์•ผ ํ•จ

 

 

 

  • 16์ง„์ˆ˜ ์‚ฌ์šฉ์ด์œ  : ๋ฐ”์ดํŠธ์™€ ์ž˜ ๋งž์Œ + ๊ฐ„๊ฒฐํ•˜๊ณ  ์งง์Œ + 2์ง„์ˆ˜์™€ ์ƒํ˜ธ๋ณ€ํ™˜์ด ์‰ฌ์›€(4์ž๋ฆฌ์”ฉ ๋Š์–ด์„œ)
  • ์šฉ์–ด ์ •๋ฆฌ
func calc(firstNum num1: Int, secondNum num2: Int) -> Int {
    return (num1 + num2)
}
// func : ํ•จ์ˆ˜ ํ‚ค์›Œ๋“œ
// calc : ํ•จ์ˆ˜ ์ด๋ฆ„
// num1 : ํŒŒ๋ผ๋ฏธํ„ฐ ๋„ค์ž„ == ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„
// Int : ํŒŒ๋ผ๋ฏธํ„ฐ ํƒ€์ž…, ๋ฆฌํ„ด ํƒ€์ž…
// firstNum : argument label == ์ธ์ž์— ๋Œ€ํ•œ ์„ค๋ช…

calc(firstNum: 10, secondNum: 10) // argument == ์ธ์ž

๋ !!

๊ทธ๋ž˜๋„ c๋ž‘ ๊ฐœ๋…์€ ๊ฑฐ์˜ ๋น„์Šทํ•ด์„œ ์‰ฌ์› ๋‹ค! ํ˜•์‹๋งŒ ์†์— ์ต์œผ๋ฉด ๋  ๋“ฏ