일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스택 중위수식
- 스택 자료구조
- restapi graphql
- 중위수식을 후위수식
- 데크 구현
- golang
- 후위수식
- 스택 구현
- rest gql
- 스택 후위수식
- 자료구조 데크
- flex html
- 장고 웹 만들기
- 스택 삽입
- 장고 하는법
- 스택 괄호
- 스택 유효성
- https://stackoverflow.com/questions/219110/how-python-web-frameworks-wsgi-and-cgi-fit-together/219124#219124
- rest graphql
- 괄호 유효성
- 풀스택?
- go
- 괄호 짝 잘맞는지
- grid html
- 루비 초보
- 풀스택
- 중위수식
- 스택 삭제
- grid flex
- Django tutorial
- Today
- Total
donchanee
Let's Go! - 변수와 상수, 타입, 연산자 본문
일단 변수와 상수.
Go 가 변수를 선언하는 방법은 다음과 같다.
var a int
var a, b, c int
var a, b, c int = 1, 2, 3 // 순차적으로 a = 1 , b = 2 , c = 3
var a = 1 // 할당되는 값의 타입을 자동적으로 추론할 수 있다.
a := 1 // 함수 내에서만 사용 가능한 Shortcut 같은 느낌. 이걸 제일 많이 쓰는듯
변수에 초기값을 설정해주지 않으면 각각 타입에 맞는 Zero Value가 할당된다.
Go 가 상수를 선언하는 방법도 다음과 같다.
const a int = 1
const s string = "Bit"
const a = 1
const s = "Bit" // 타입을 Go에서 자동적으로 추론할 수 있다. 여기선 string형으로 판단할 듯.
const (
A = iota // 0
B // 1
C // 2
)
"iota" 라는 identifier를 A에 할당하면 값들이 순차적으로 1씩 증가된 값을 부여받는다.
const를 선언하고 중괄호 안에 여러개 값을 할당 가능하다.
package main
func main() {
const (
a = "a"
b = "b"
c = "c"
d = iota
e
f
)
println(a,b,c,d,e,f)
}
이렇게 실행하면 a b c 3 4 5 이라는 결과값을 얻게 된다.
Go에는 (다른 언어와 마찬가지로) 여러가지 타입이 있다.
bool 타입, string , int , int8 16 32 64, uint, uint8 16 32 64, float32, float64, complex64, complex128, byte ...
설명은 필요 없을거라 생각한다.
문자열을 다룰 때, 큰따옴표와 작은따옴표 모두 사용할 수 있다.
작은따옴표는 작은따옴표 사이에 있는 문장 모두를 그대로 RAW하게 표현하고, 큰따옴표는 escape 문자열을 해석하고, 복수열으로 사용할 수 없다. 복수열으로 사용하고 싶으면 +를 사용하게 된다. 아래 예시를 보자
package main
import "fmt"
func main() {
// 작은따옴표. 주석도 얄짤없음
jageun := `가\n
나\n // RAW하게 인식해버림
다 라`
// 큰따옴표
keun := "가\n나\n" +
"다 라"
fmt.Println(jageun)
fmt.Println()
fmt.Println(keun)
}
/* 출력 */
가\n
나\n // RAW하게 인식해버림
다 라
가
나
다 라
형변환도 물론 가능하다.
package main
func main() {
var i int = 305
var u uint = uint(i)
var f float32 = float32(i)
println(f, u)
u = "string" // 이런거 오류남
}
float형이 없고 무조건 float32, float64인가 봄. 그냥 그런걸로 알자.
형변환 명시적 지정 안해주면 오류난다. 그냥 무작정 넣을 수 없음.
연산자야 뭐 다른 언어랑 비슷하다.
산술 , 관계 , 논리 연산자 다 가능하다.
[ 사칙연산( + - * / % ) 되고, ++ , -- 가능하다. == , != , <= , >= 가능하다. && || ! 가능하다. ]
AND , OR, XOR 연산도 가능하고, 바이너리 쉬프트도 가능.
[ & | ^ << >> ]
할당연산자로 불리는 것도 다 가능하다
[ += -= *= %= <<= ]
포인터 연산자는 제공하지만, 포인터 연산은 제공하지 않는다.
q := 1
var p = &q
println(*p) // 가능
println(*(p+1)) // 불가능
다음 글 : 조건문, 반복문
'프로그래밍 > Go lang' 카테고리의 다른 글
Let's Go! - 조건문, 반복문 (0) | 2019.07.14 |
---|---|
Let's Go! - Hello world (0) | 2019.07.13 |