고언어 2일차 : Math를 써보자

Posted by ITPangPang
2016. 5. 3. 22:46 서버개발/Go(고) 언어


고언어 2일차 : Math를 써보자


오늘은 Math를 써보겠습니다.


고 언어를 써보면서 편리한 부분과 불편한 부분이 있는데


다른 언어를 많이 안써봐서 모르겠지만, 고언어는 패키지를 import할때 자동으로 해줍니다.


fmt패키지도 그렇고 math패키지도 그렇고 일단 코드를 적어놓고 막 써나가다보면


패키지가 자동으로 import 되어있습니다.



래 그림 처럼 math패키지를

import하지 않은 상황에서


바로 math.라고 쳐보고 원하는 함수를

선택해보면

저절로 import 된것을

확인할 수 있습니다.

(인텔리J가 그런지는 모르겠으나)





음 아무튼 

math 패키지를 

계속 써보겠습니다.


package main

import (
"fmt"
"math"
)

func main(){
fmt.Println(math.E)
fmt.Println(math.Ln10)
fmt.Println(math.Pi);
}


뭐 

E  파이 ln

이런것들을 

바로 넣고 

돌려보니

정상으로 잘 출력됩니다 



다음을 로그를

써봤습니다


package main

import (
"fmt"
"math"
)

func main(){
fmt.Println(math.Log(10))
fmt.Println(math.Log2(2))
fmt.Println(math.Log10(10))
}




음 일반적인 

경우라 생각해서

Log10은 1일거라 

생각했는데

아니네요


그래서 찾아보니 

따로따로 있네요

Log2, Log10 

결과는 잘 나옵니다


다음은

Max와 Min입니다

package main

import (
"fmt"
"math"
)

func main(){
fmt.Println(math.Max(1, 2))
fmt.Println(math.Max(10,3940394039403))

fmt.Println(math.Min(13029031294,2049))
fmt.Println(math.Min(0.001, 0.3))
}



참 편리하게 가능하네요



다음은 

Abs(절대값과), Mod(나머지)

입니다

package main

import (
"fmt"
"math"
)

func main(){
fmt.Println(math.Abs(-3))
fmt.Println(math.Abs(3))
fmt.Println(math.Abs(-4.3))

fmt.Println(math.Mod(2, 5))
fmt.Println(math.Mod(10, 2))
fmt.Println(math.Mod(0.5, 0.21))
}



음 쉬운것만 하고 있긴 하지만..

쓰면 쓸수록 쉽네요 뭔가.



다음은

Pow(제곱), Sqr(루트)

입니다.

package main

import (
"fmt"
"math"
)

func main(){
fmt.Println(math.Pow(2, 2))
fmt.Println(math.Pow(2, 10))
fmt.Println(math.Sqrt2)
fmt.Println(math.Sqrt(3))
fmt.Println(math.Sqrt(4))
}



뭔가 추억의 수학시간으로

돌아간 느낌..

2의 10승..

루트2,,

루트3..



다음은 머리아픈

삼각함수..

Cos, Sin, tan

package main

import (
"fmt"
"math"
)

func main(){
fmt.Println("=====Sin=====")
fmt.Println(math.Sin(-1))
fmt.Println(math.Sin(0))
fmt.Println(math.Sin(1))
fmt.Println("=====Cos=====")
fmt.Println(math.Cos(-1))
fmt.Println(math.Cos(0))
fmt.Println(math.Cos(1))
fmt.Println("=====Tan=====")
fmt.Println(math.Tan(-1))
fmt.Println(math.Tan(0))
fmt.Println(math.Tan(1))
}




각도를 넣어보려고 했으나

어떻게 넣는지 모르니 

패스~

(변환을 해서 넣어야하나..)