목록programming/Golang (9)
관심있는 것들 정리
dave.cheney.net/high-performance-go-workshop/dotgo-paris.html?fbclid=IwAR14f2mfgq_V9_UtqNzd16TrDw4w-5CMcsgvT6U996us9-SHv7PDMuXQHB4
hamait.tistory.com/1017
receive only channel(
Channel이 닫혔는지 확인하기 위해, Channel에서 값을 받으려 한 후 결과 체크 package main import ( "fmt" ) func main() { ch := make(chan int, 1) // create sync channel go func() { ch
실제 타입이 아닌 구현된 메소드만을 이용해 타입을 판단하는 덕타이핑 package main import ( "fmt" ) type Duck struct { } func (d Duck) quack() { fmt.Println("Quack~") } func (d Duck) feather() { fmt.Println("Flutter") } type Person struct { } func (p Person) quack() { fmt.Println("Says Quack") } func (p Person) feather() { fmt.Println("Swing two arms") } type Action interface { quack() feather() } func handle(a Action) { a.qua..
slice는 array와 달리 크기가 고정되어 있지 않음 array는 var a [5]int와 같이 인자로 크기를 주지만, slice는 var a []int 와 같이 인자로 크기를 주지 않음 기본적으로 reference type으로 저장 공간을 할당하려면(초기화시 값으로 자동할 당하는 경우 외), make([]자료형, 길이, 용량)으로 할당 필요(용량명시하지 않으면 길이와 용량이 동일하게 할당) 길이: index로 접근 가능한 길이. 길이
package main import ( "fmt" ) func main() { for i := 99; i > 0; i-- { var unit string switch { case i > 1: unit = "bottles" case 1 == i: unit = "bottle" } fmt.Printf("%v %s of beer on the wall, %v %s of beer.\n", i, unit, i, unit) if 1 == (i - 1) { unit = "bottle" fmt.Printf("Take one down, pass it around, %v %s of beer on the wall.\n", i-1, unit) } else if 0 == (i - 1) { fmt.Printf("Take one do..