반응형
변수
Go는 변수를 할당하고 사용을 안하면 에러 이것때문에 삽질좀... 내잘못인지?
초기값 지정안하면 타입에 해당하는 초기값으로 셋팅
변수 선언방식 Short Assignment Statement (:=)
1.var i = 1 -> i := 1
2.var 생략가능
3.함수(func)내에서만 사용가능
함수 밖에서는 var를 사용해야함
Go에서 변수와 상수 함수 밖에서도 사용가능
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | package main import ( "reflect" ) func main() { var s string = "Hello World\n" println(s) //초기값은 순서대로 변수에 할당 var i, j, k int = 1, 2, 3 println(i) println(j) println(k) //초기값 지정안하면 Go는 Zero Value 기본적으로 할당 var test int println(test) //false 로 초기값 셋팅 var test_boolean bool println(test_boolean) //"" 초기값 셋팅 var test_string string println(test_string) //타입 추론 var int_val = 1 println(reflect.TypeOf(int_val)) /*변수 선언방식 Short Assignment Statement (:=) 1.var i = 1 -> i := 1 2.var 생략가능 3.함수(func)내에서만 사용가능 함수 밖에서는 var를 사용해야함 Go에서 변수와 상수 함수 밖에서도 사용가능 */ short_i :=11 println(short_i) //상수 const 선언 const const_c int = 10 println(const_c) const const_s string = "Hi" println(const_s) //여러 개의 상수들 묶어서 지정 가능 const ( Visa = "Visa" Master = "MasterCard" Amex = "American Express" ) println(Visa,Master,Amex) //상수값을 0부터 순차적으로 부여 //iota = identifier 사용 가능 const ( Apple = iota Grape Orange ) println(Apple,Grape,Orange) /** Go 키워드 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var */ } | cs |
타입
1.부울린 타입 bool
2.문자열 타입 string: string은 한번 생성되면 수정될 수 없는 Immutable 타입임
3.정수형 타입
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
4.Float 및 복소수 타입
float32 float64 complex64 complex128
5.기타 타입
byte:uint8과 동일하며 바이트 코드에 사용
rune:int32과 동일하며 유니코드 코드포인터에 사
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | package main import "fmt" //Go 데이터타입 /* 1.부울린 타입 bool 2.문자열 타입 string: string은 한번 생성되면 수정될 수 없는 Immutable 타입임 3.정수형 타입 int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr 4.Float 및 복소수 타입 float32 float64 complex64 complex128 5.기타 타입 byte:uint8과 동일하며 바이트 코드에 사용 rune:int32과 동일하며 유니코드 코드포인터에 사 */ func main() { //문자열 리터럴 (''),("") 표현 //('') 둘러싸인 문자열을 그대로의 값을 표현 //("") 이중인용부호 로 싸인 문자열은 Interpreted String Literal //복수라인에 걸쳐 쓸수 없으며 인용부호 안의 Escape 문자열 해석 \n -> NewLine rawLiteral := `아리랑\n 아리랑\n 아라리요` // Interpreted String Literal interLiteral := "아리랑아리랑\n아리리요" // 아래와 같이 +를 사용하여 두 라인에 걸쳐 사용할 수도 있다. // interLiteral := "아리랑아리랑\n" + // "아리리요" // 이중인용부호를 이용해 문자열을 여러 라인에 걸쳐 쓰기 위해서는 + 연산자 이 fmt.Println(rawLiteral) fmt.Println() fmt.Println(interLiteral) //3.데이터 타입 변환 // T(v)로 표현 T는 변환하고자 하는 타입을 표시, v는 변환될 값(value) var i int = 100 //명시적 형변환 //암묵적 형변환시에는 런타임 에러가날수도 있음? var u uint = uint(i) var f float32 = float32(i) println(f, u) str := "ABC" bytes := []byte(str) str2 := string(bytes) println(bytes, str2) } | cs |
반응형
댓글