2: GO 기초 지식
package main
import (
"fmt"
)
func main() {
c()
}
// 1,
func test1() {
//-----------------------------1.1
var v1 int
var v2 string
var v3 [10]int //
var v4 []int //
var v5 struct {
f int
}
var v6 *int //
var v7 map[string]int //key string value int map
var v8 func(a int) int
//-----------------------------1.2
var v9 int = 10
var v10 = 10
v11 := 10
//-----------------------------1.3
// , , “_”
_, _, nickName := GetName()
}
//1.3
func GetName() (firstName, lastName, nickName string) {
return "michael", "ma", "liang"
}
// :
func test2() {
//-----------------------------2.1
const Pi float64 = 3.14159265358979323846
const zero = 0.0 //
const (
size int64 = 1024
eof = -1 //
)
const u, v float32 = 0, 3
const a, b, c = 3, 4, "foo"
//-----------------------------2.2
//true false iota;iota , , const 0, const , iota 1
const ( // iota 0
c0 = iota // c0 == 0
c1 = iota // c1 == 1
c2 = iota // c2 == 2
)
const (
a1 = 1 << iota // a == 1 (iota const 0)
b1 = 1 << iota // b == 2
c3 = 1 << iota // c == 4
)
const (
u1 = iota * 42 // u == 0
v12 float64 = iota * 42 // v == 42.0
w = iota * 42 // w == 84
)
const x = iota // x == 0 ( iota 0 )
const y = iota //y==0
//-----------------------------2.3
// ,
const (
Sunday = iota
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
numberOfDays
)
}
// :
func test3() {
//-----------------------------3.1:
// :bool
// :int8 byte int16 int uint uintptr
// :float32 float64
// :complex64 complex128
// :string
// :rune
// :error
//-----------------------------3.2:
//
//
//
//
//
//
//
}
// :
func test4() {
//-----------------------------4.1
switch i {
case 0:
fmt.Printf("0")
case 1:
fmt.Printf("1")
case 2:
fallthrough
case 3:
fmt.Printf("3")
case 4, 5, 6:
fmt.Printf("4, 5, 6")
default:
fmt.Printf("Default")
}
switch {
case 0 <= Num && Num <= 3:
fmt.Printf("0-3")
case 4 <= Num && Num <= 6:
fmt.Printf("4-6")
case 7 <= Num && Num <= 9:
fmt.Printf("7-9")
}
//-----------------------------4.2
sum := 0
for i := 0; i < 10; i++ {
sum += i
}
sum2 := 0
for {
sum2++
if sum2 > 100 {
break
}
}
//-----------------------------4.3
//
it := 0
HERE:
fmt.Println(i)
it++
if i < 10 {
goto HERE
}
//-----------------------------4.4
if a < 5 {
return 0
} else {
return 1
}
}
// :
//-----------------------------5.1
//func ( ) { }
//
func ImAfunc(a int, b int) (ret int, err error) {
if a < 0 || b < 0 {
err = errors.New("Should be non-negative numbers!")
return
}
return a + b, nil
}
//-----------------------------5.2
func a() {
//
imafc, err := ImAfunc(1, 2)
fmt.Println(imafc, err)
}
//-----------------------------5.3
func myfunc(args ...int) {
for _, arg := range args {
fmt.Println(arg)
}
}
//
func b() {
myfunc(1, 2, 3, 4, 5, 6, 7)
}
//-----------------------------5.4
// ImAfunc
//-----------------------------5.5
// 1
package main
import (
"fmt"
)
func main() {
func(a, b int) (sum int) {
sum = a + b
fmt.Println(sum)
return
}(1, 2)//
}
// 2
package main
import (
"fmt"
)
func main() {
nm := func(a, b int) (sum int) {
sum = a + b
fmt.Println(sum)
return
}
nm(1, 2)
}
// :
func Foo(param int)(n int, err error) {
// ...
}
//
n, err := Foo(0)
if err != nil {
//
} else {
//
}
// :defer
//-----------------------------7.1
func CopyFile(dst, src string) (w int64, err error) {
srcFile, err := os.Open(src)
if err != nil {
return
}
defer srcFile.Close()
dstFile, err := os.Create(dstName)
if err != nil {
return
}
defer dstFile.Close()
return io.Copy(dstFile, srcFile)
}
//-----------------------------7.2
//panic() recover()
//
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.