๊ด€๋ฆฌ ๋ฉ”๋‰ด

data_lab

์Šค์นผ๋ผ ๋ถ 01 ๋ณธ๋ฌธ

๋ฏธ์‚ฌ์šฉ/3. ์Šค์นผ๋ผ

์Šค์นผ๋ผ ๋ถ 01

๐Ÿฐํžˆํžˆ 2023. 1. 11. 14:51

์Šค์นผ๋ผ์˜ ๋ง›

์Šค์นผ๋ผ ํŠน์ง•

์ •์  ํƒ€์ž…
๊ตฌ๋ฌธ ๊ฐ„๊ฒฐํ•˜๋ฉฐ ์ฝ๊ธฐ ์‰ฌ์›€
๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณผ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„ ์ง€์›
์ •๊ตํ•œ ์œ ํ˜• ์ถ”๋ก  ์‹œ์Šคํ…œ?
JVM์—์„œ ์‹คํ–‰๋˜๋Š” ํด๋ž˜์ŠคํŒŒ์ผ ์ƒ์„ฑ
์ž๋ฐ” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์›€

Hello, World

Hello.scala

object Hello expends App {
	println("Hello, World")
}

๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ ๋ณ€์ˆ˜

val : ๋ถˆ๋ณ€ ๋ณ€์ˆ˜ - ์ž๋ฐ”์—์„œ final๊ณผ ๊ฐ™์Œ
var : ๊ฐ€๋ณ€ ๋ณ€์ˆ˜ - ํŠน๋ณ„ํ•œ ์ด์œ ๊ฐ€ ์žˆ์„ ๋•Œ๋งŒ ์‚ฌ์šฉ

๋ณ€์ˆ˜ ์œ ํ˜• ์„ ์–ธ

์œ ํ˜•์„ ์„ ์–ธํ•˜์ง€ ์•Š๊ณ  ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ฆ

val x = 1
val s = "string"
val p = new Persion("Regina")

๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ฝ”๋“œ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š”๋ฐ ๋„์›€๋จ
์œ ํ˜• ๋ช…์‹œํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•„์š”ํ•˜์ง€์•Š์Œ

์ œ์–ด ๊ตฌ์กฐ

if (test1) {
    doA()
} else if (test2) {
    doB()
} else if (test3) {
    doC()
} else {
    doD()
}

์‚ผํ•ญ ์—ฐ์‚ฐ์ž

val x = if (a < b) a else b

match ํ‘œํ˜„์‹

์Šค์นผ๋ผ์—์„œ match๋Š” ์ž๋ฐ”์—์„œ swtich์™€ ์œ ์‚ฌํ•จ

val result = i match {
    case 1 => "one"
    case 2 => "two"
    case _ => "not 1 or 2"
}

์ •์ˆ˜๋กœ๋งŒ ์ œํ•œ๋˜์•Š๊ณ  boolean์„ ํฌํ•จํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์‚ฌ์šฉํ•จ

val booleanAsString = bool match {
    case true => "true"
    case false => "false"
}

try/catch ํ‘œํ˜„์‹

์ž๋ฐ” try/catch์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ match ํ‘œํ˜„์‹๊ณผ ์ผ์น˜ํ•จ

try {
    writeToFile(text)
} catch {
    case fnfe: FileNotFoundException => println(fnfe)
    case ioe: IOException => println(ioe)
}

for loop์™€ ํ‘œํ˜„์‹

for (arg <- args) println(arg)

// "x to y" syntax
for (i <- 0 to 5) println(i)

// "x to y by" syntax
for (i <- 0 to 10 by 2) println(i)

for-loop์— ํ‚ค์›Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์‚ฐ์ถœํ•˜๋Š” yeild ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ

val x = for (i <- 1 to 5) yield i * 2

while do/while ํ‘œํ˜„์‹

// while loop
while(condition) {
    statement(a)
    statement(b)
}

// do-while
do {
   statement(a)
   statement(b)
} 
while(condition)

ํด๋ž˜์Šค

class Person(var firstName: String, var lastName: String) {
    def printFullName() = println(s"$firstName $lastName")
}
val p = new Person("Julia", "Kern")
println(p.firstName)
p.lastName = "Manes"
p.printFullName()

์Šค์นผ๋ผ ๋ฉ”์„œ๋“œ

๋ฐ˜ํ™˜ ์œ ํ˜• ์„ ์–ธํ•  ํ•„์š” ์—†์Œ

def sum(a: Int, b: Int) = a + b
def concatenate(s1: String, s2: String) = s1 + s2

๋ฉ”์„œ๋“œ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•

def sum(a: Int, b: Int) = a + b
def concatenate(s1: String, s2: String) = s1 + s2

trait

์ถ” ํ›„์— ์ž์„ธํžˆ ๋ด์„œ ์ง€๊ธˆ์€ ๊ทธ๋ƒฅ ๋„˜๊น€

Collection Class

ํŠœํ”Œ

ํ‘œํ˜„์‹์€ ์—ฌ๊ธฐ์„œ ๋Œ€์ถฉ ์ดํ•ดํ•˜๊ณ  ๋„˜๊ธธ๊ฑฐ์ž„

728x90
๋ฐ˜์‘ํ˜•

'๋ฏธ์‚ฌ์šฉ > 3. ์Šค์นผ๋ผ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์Šค์นผ๋ผ ๋ถ 02  (0) 2023.01.11