'잡동사니'에 해당되는 글 13155건
- 2022.04.08 으아아아 피로가 안풀려
- 2022.04.07 golang a tour of go offline
- 2022.04.07 jetson / armv8 EL
- 2022.04.07 golang struct
- 2022.04.07 golang pointer
- 2022.04.07 golang switch는 break 가 없다 (fallthough)
- 2022.04.07 golang for 반복문
- 2022.04.07 macos 한영 변환 단축키 변경
- 2022.04.07 golang 사용자 함수
- 2022.04.07 golang import
go 설치하고
go install을 이용해서 tour 를 설치하면
$ go install golang.org/x/website/tour@latest |
일단 mac에서 테스트 했는데 home 디렉토리 기준 ~/go/bin/tour 에 a tour of go 실행 파일이 존재한다.
실행하면 사파리 실행되면서 자동으로 보인다
$ go env | grep GOPATH $ ~/go/bin/tour |
'Programming > golang' 카테고리의 다른 글
golang 구조체 (0) | 2022.04.11 |
---|---|
golang defer와 if (0) | 2022.04.11 |
golang struct (0) | 2022.04.07 |
golang pointer (0) | 2022.04.07 |
golang switch는 break 가 없다 (fallthough) (0) | 2022.04.07 |
'embeded > jetson' 카테고리의 다른 글
nvidia jetson deepstream objectDetector_SSD 플러그인 분석 (0) | 2022.04.13 |
---|---|
nvidia jetson deepstream objectDetector_SSD 실행 스크립트 분석 (0) | 2022.04.13 |
nvidia jetson partition table (0) | 2022.04.06 |
jetson nano 부팅이 안됨 (0) | 2022.04.06 |
deepstream triton server (0) | 2022.03.30 |
구조체 선언은 type 키워드로 시작한다.
그나저나 {}와 ()의 규칙은 아직도 감이 잘 안오네..
type Vertex struct { X int Y int } func main() { fmt.Println(Vertex{1, 2}) } |
[링크 : https://go-tour-ko.appspot.com/moretypes/2]
구조체는 함수는 아니니까 () 대신 {}로 인자를 넘겨 변수를 생성하는 걸까?
v := Vertex{1, 2} v.X = 4 fmt.Println(v.X) |
[링크 : https://go-tour-ko.appspot.com/moretypes/3]
go도 전역변수를 지원하는 걸까?
c99에서 지원하는 구조체 변수명으로 지정 초기화 하는 기능이 기본으로 들어있는 듯.
type Vertex struct { X, Y int } var ( v1 = Vertex{1, 2} // has type Vertex v2 = Vertex{X: 1} // Y:0 is implicit v3 = Vertex{} // X:0 and Y:0 p = &Vertex{1, 2} // has type *Vertex ) func main() { fmt.Println(v1, p, v2, v3) } |
[링크 : https://go-tour-ko.appspot.com/moretypes/5]
타입선언하면서 바로 변수로 만들기도 가능.
func main() { q := []int{2, 3, 5, 7, 11, 13} fmt.Println(q) r := []bool{true, false, true, true, false, true} fmt.Println(r) s := []struct { i int b bool }{ {2, true}, {3, false}, {5, true}, {7, true}, {11, false}, {13, true}, } fmt.Println(s) } |
'Programming > golang' 카테고리의 다른 글
golang defer와 if (0) | 2022.04.11 |
---|---|
golang a tour of go offline (0) | 2022.04.07 |
golang pointer (0) | 2022.04.07 |
golang switch는 break 가 없다 (fallthough) (0) | 2022.04.07 |
golang for 반복문 (0) | 2022.04.07 |
변수 타입에 포인터 임을 명시하지, 변수에 포인터를 붙일 수 없도록 문법이 변경 된 듯.
func main() { i, j := 42, 2701 // var p *int var *p int p = &i // p := &i // point to i fmt.Println(*p) // read i through the pointer *p = 21 // set i through the pointer fmt.Println(i) // see the new value of i p = &j // point to j *p = *p / 37 // divide j through the pointer fmt.Println(j) // see the new value of j } |
포인터 참조는 가능하지만, 주소 연산은 지원하지 않는건가..
C언어와는 다르게, Go는 포인터 산술을 지원하지 않습니다. |
'Programming > golang' 카테고리의 다른 글
golang a tour of go offline (0) | 2022.04.07 |
---|---|
golang struct (0) | 2022.04.07 |
golang switch는 break 가 없다 (fallthough) (0) | 2022.04.07 |
golang for 반복문 (0) | 2022.04.07 |
golang 사용자 함수 (0) | 2022.04.07 |
;를 통해 연속된 명령을 수행할 수 있는 것 같고
다음 case가 나오기 전까지만 실행된다.
func main() { fmt.Print("Go runs on ") switch os := runtime.GOOS; os { case "darwin": fmt.Println("OS X.") case "linux": fmt.Println("Linux.") default: // freebsd, openbsd, // plan9, windows... fmt.Printf("%s.\n", os) } } |
[링크 : https://go-tour-ko.appspot.com/flowcontrol/9]
복잡한 if else문을 단순화 하기 위해 쓸 수 있다는데, 가독성이 영...
func main() { t := time.Now() fmt.Println(t) switch { case t.Hour() < 12: fmt.Println("Good morning!") case t.Hour() < 17: fmt.Println("Good afternoon.") default: fmt.Println("Good evening.") } } |
[링크 : https://go-tour-ko.appspot.com/flowcontrol/11]
+
22.04.11
대신 fallthrough를 통해서 다음 것을 실행할 순 있다.
default 구현할때 이걸 꼭 써줘야 한다면 좀 귀찮을 듯.
[링크 : https://golangbyexample.com/fallthrough-keyword-golang/]
'Programming > golang' 카테고리의 다른 글
golang struct (0) | 2022.04.07 |
---|---|
golang pointer (0) | 2022.04.07 |
golang for 반복문 (0) | 2022.04.07 |
golang 사용자 함수 (0) | 2022.04.07 |
golang import (0) | 2022.04.07 |
for 에서는 짧은할당문만 쓰도록 강제되는 것으로 보인다.
func main() { sum := 0 for i := 0; i < 10; i++ { sum += i } fmt.Println(sum) // for var i = 0; i < 10; i++ { // sum -= i // } // fmt.Println(sum) } |
var i =0 식으로 할당하면 for 초기화에서는 var 선언이 허용되지 않는다며 에러를 발생시킨다.
syntax error: var declaration not allowed in for initializer |
[링크 : https://go-tour-ko.appspot.com/flowcontrol/1]
for문에서 초기화, 증감문을 생략 가능하므로 키워드 while은 삭제되고 for로 돌리면 된다.
func main() { sum := 1 for sum < 1000 { sum += sum } fmt.Println(sum) } |
[링크 : https://go-tour-ko.appspot.com/flowcontrol/3]
while(1)이나 for(;;) 보다 간결하게 무한반복을 구현할 수 있다.
func main() { for { } } |
[링크 : https://go-tour-ko.appspot.com/flowcontrol/4]
+
문법 자체는 c와 동일하다.
continue break goto label :label |
'Programming > golang' 카테고리의 다른 글
golang pointer (0) | 2022.04.07 |
---|---|
golang switch는 break 가 없다 (fallthough) (0) | 2022.04.07 |
golang 사용자 함수 (0) | 2022.04.07 |
golang import (0) | 2022.04.07 |
golang 변수 할당문(짧은 변수 선언문) := (0) | 2022.04.07 |
생각해보니 sportlight 잘 안쓰니(솔찍히 간지는 나는데 용도를 모름...)
좌측 command + space를 한영 변환으로 등록!
우측 option을 한영키로 등록할 순 있으나 외부 프로그램 사용이 필요하다고 하니 패스.
[링크 : https://luran.me/486]
'Apple' 카테고리의 다른 글
macos opengl(cocoa?) (0) | 2022.04.28 |
---|---|
dylib (0) | 2022.04.27 |
macos sshd (0) | 2022.04.07 |
macos cpu 정보확인 (0) | 2022.04.02 |
mac 에서 rtl-sdr 시도.. (0) | 2022.04.02 |
변수 선언시에 변수명 변수타입 식으로 했듯
함수 선언에서도
함수의 시작을 알려주는 키워드인 func 이후에 함수명(인자) 리턴 타입 순서로 선언한다.
너무 c언어에 물들어 있었나... 순서가 하나 바뀌었다고 눈에 안들어오네 -_-
func add(x int, y int) int { return x + y } |
[링크 : https://go-tour-ko.appspot.com/basics/4]
int x,y가 함수 인자로 c에서 허용이 되었던가 기억이 안나네 -_-
아무튼 유사한 방법으로 함수 인자를 타입별로 묶어서 표현할 수 있다.
func add(x, y int) int { return x + y } |
[링크 : https://go-tour-ko.appspot.com/basics/5]
요즘 언어 답게 복수 변수의 return 을 허용한다.
다만, 두개의 변수를 리턴할 때에는 소괄호를 이용해서 묶어 주어야 하는 듯.
func swap(x, y string) (string, string) { return y, x } func main() { a, b := swap("hello", "world") fmt.Println(a, b) } |
[링크 : https://go-tour-ko.appspot.com/basics/6]
단순하게 return 만 씀으로서 앞서 계산한 변수의 값을 한번에 리턴한다.
물론 받는 쪽에서 리턴 변수의 이름까지 연동되진 않는다.
func split(sum int) (x, y int) { x = sum * 4 / 9 y = sum - x return } func main() { fmt.Println(split(17)) } |
[링크 : https://go-tour-ko.appspot.com/basics/7]
+
해당 문법은 gcc에서는 지원하지 않고 clang에서는 기본 변수타입으로 강제 지정한다.
go 에서만 지원하는 문법으로 확인.
% gcc -v Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/c++/4.2.1 Apple clang version 12.0.0 (clang-1200.0.32.29) Target: x86_64-apple-darwin19.6.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin % gcc hello.c hello.c:3:16: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] int oops(int a,b,c) ^ hello.c:3:18: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] int oops(int a,b,c) |
$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) $ gcc tt.c tt.c:3:16: error: unknown type name ‘b’ int oops(int a,b,c) ^ tt.c:3:18: error: unknown type name ‘c’ int oops(int a,b,c) |
'Programming > golang' 카테고리의 다른 글
golang switch는 break 가 없다 (fallthough) (0) | 2022.04.07 |
---|---|
golang for 반복문 (0) | 2022.04.07 |
golang import (0) | 2022.04.07 |
golang 변수 할당문(짧은 변수 선언문) := (0) | 2022.04.07 |
golang type 변환, type 확인하기 (0) | 2022.04.07 |
위는 하나씩 불러올 때, 아래는 factored 라는데 무슨 의미인지 와닫지 않네..
그러고 보니 factored import 의 경우 대괄호가 아니라 소괄호를 사용하는게 특이하다. 콤마로 구분도 안하고 무슨 문법일까?
import "fmt" import "math" import ( "fmt" "math" ) |
'Programming > golang' 카테고리의 다른 글
golang for 반복문 (0) | 2022.04.07 |
---|---|
golang 사용자 함수 (0) | 2022.04.07 |
golang 변수 할당문(짧은 변수 선언문) := (0) | 2022.04.07 |
golang type 변환, type 확인하기 (0) | 2022.04.07 |
go 변수, 상수, 배열 (0) | 2022.04.06 |