반응형
2023년의 언어로 Go 를 정했다.
쓸모는 나중에 생각하고 일단 시작한다.
설치!
그냥 한다! 쉽다!
기본 헬로우 월드!
package main
import "fmt"
func main(){
fmt.Println("Hello, World!")
}
세미콜론 안쓴다.
Go에는 while 없다!
그래서 이렇게 쓰면 while 과 같다!
package main
import "fmt"
func main(){
i := 0
for ok := true; ok; ok= (i!= 10) {
fmt.Println(i*i, " ")
i++
}
fmt.Println()
}
콘솔 입력은 fmt.Scanln
c언어와 같이 문자열 변수 선언후, 포인터 주소를 넘겨준다 (&)
package main
import "fmt"
func main(){
fmt.Println("이름을 알려달라!")
var name string
fmt.Scanln(&name)
fmt.Println("기미노 나마에와:", name)
}
콘솔 실행 인수는 os 패키지를 이용한다. os.Args
숫자변환 패키지는 strconv
에러처리도 포함하고, 입력된 인수중 최소, 최대 값을 출력
package main
import (
"fmt"
"os"
"strconv"
)
func main(){
arguments := os.Args
if len(arguments) == 1 {
//인수는 기본 1개이다. ( 실행어 )
fmt.Println("인수를 입력하라!")
return
}
var min, max float64
for i :=1; i< len(arguments); i++ {
n, err := strconv.ParseFloat(arguments[i], 64)
if err != nil {
continue
}
//처음은 바로 셋팅
if i == 1 {
min = n
max = n
continue
}
if n < min {
min = n
}
if n> max {
max = n
}
}
fmt.Println("가장작은 수 : " , min)
fmt.Println("가장큰 수 :", max)
}
고루틴의 매우매우 샘플스
package main
import (
"fmt"
"time"
)
func myPrint(start, finish int){
for i:=start; i <= finish;i++{
fmt.Print(i, " ")
}
fmt.Println()
time.Sleep(100*time.Microsecond)
}
func main(){
for i:=0;i<5;i++{
go myPrint(i, 5) //고루틴
}
time.Sleep(time.Second)
}
쓰레드와 고루틴은 비슷하면서도 다름!
반응형