티스토리 뷰
반응형
📌 간결하고 유연하다
Go는 문법 요소는 줄이고 유연함을 높였다
- while문이 없고 for 문을 사용
package main
import "fmt"
func main() {
sum := 0
// 초기문; 조건문; 증가치
for i := 0; i < 10; i++ {
sum += i
}
fmt.Println(sum) // 45
}
package main
import "fmt"
func main() {
sum, i := 0, 0
// for문에 조건문만 사용
for i < 10 {
sum += i
i++
}
fmt.Println(sum) // 45
}
package main
import "fmt"
func main() {
sum, i := 0, 0
// for문에 아무것도 없음
for {
if i >= 10 {
break
}
sum += i
i++
}
fmt.Println(sum) // 45
}
- switch에 조건문을 사용할 수 있음 ⇒ if문 대체 가능
package main
import "fmt"
func main() {
c := 'a'
switch {
case '0' <= c && c <= '9':
fmt.Printf("%c: 숫자", c)
case 'a' <= c && c <= 'z':
fmt.Printf("%c: 소문자", c) // a: 소문자
case 'A' <= c && c <= 'Z':
fmt.Printf("%c: 대문자", c)
}
}
📌 정적 타입 언어 + 동적 타입 언어
Go는 정적 타입 언어이지만, 동적 타입 언어의 특성도 가지고 있다.
- 변수의 타입을 지정하지 않아도 컴파일러가 변수 타입을 지정해줌
- 덕 타이핑 방식으로 동작하는 인터페이스
📌 모호한 요소 제거
Go는 정적 타입 언어이지만, 동적 타입 언어의 특성도 가지고 있다.
- ++ / -- 와 같은 증감 연산자는 후치 연산만 가능
- 증감 연산자는 반환 값이 없음
- ++i 와 같은 전치 연산 불가능
- 포인터 사용은 허용. BUT 포인터 연산은 허용하지 않음.
📌 세미콜론 생략 가능
- 세미콜론을 사용해서 여러 문장을 한 줄에 표현 가능
- 컴파일 시 컴파일러가 문장 끝에 세미콜론을 넣어줌
- 여는 중괄호 { 는 함수선언 혹은 제어문이 시작되는 줄에 써야 함
package main
import "fmt"
func main() {
for j := 5; j >= 5; j-- // 컴파일러가 ;를 자동으로 삽입하여 syntax error 발생
{
fmt.Print(j)
}
}
📌 주석
- // 로 한 줄 주석
- /* */ 로 일부분이나 여러 줄 주석
📌 gofmt로 코드 서식 지정
- gofmt 도구로 코드의 스타일을 Go의 스타일로 변경 할 수 있음
$ gofmt -h
usage: gofmt [flags] [path ...]
-cpuprofile string
write cpu profile to this file
-d display diffs instead of rewriting files
-e report all errors (not just the first 10 on different lines)
-l list files whose formatting differs from gofmt's
-r string
rewrite rule (e.g., 'a[b:len(a)] -> a[b:]')
-s simplify code
-w write result to (source) file instead of stdout
gofmt의 사용법이다. w 옵션을 주면 자동으로 저장해준다.
gofmt 파일명
위와 같이 입력하면 파일의 스타일이 변경된다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- graphql
- git
- 1차 인터뷰
- pm.expect
- postman tests
- string
- postman
- Kotlin
- mysql
- pm.test
- squash merge
- 주생성자
- downTo
- go 특징
- 확장 함수
- 코딩테스트
- Basic Type
- 2차 인터뷰
- hashcode
- 네이버 2022 공채
- python3
- Squash and merge
- Kotlin In Action
- postman collection
- solidity
- java
- DGS Framework
- 코틀린
- Python
- github
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함