Berbagi teknologi

Pengantar bahasa Go (1)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Mekanisme pencarian paket ketergantungan Go Modules
  • Dependensi pihak ketiga yang diunduh disimpan di $GOPATH/pkg/mod Turun
  • File yang dapat dieksekusi yang dihasilkan oleh go install disimpan di $GOPATH/binTurun
  • Tergantung pada urutan pencarian:
    • Daftar pekerjaan
    • $GOPATH/paket/mod
    • $GOPATH/sumber

1. Dasar-dasar bahasa Go

1.Pengidentifikasi dan kata kunci

1.1 Metode penamaan

Penamaan variabel go, konstanta, tipe khusus, paket, dan fungsi harus mengikuti aturan berikut:

Karakter pertama bisa任意Unicode字符atau下划线

Bagian selain karakter pertama dapat berupa karakter Unicode, garis bawah, atau angka

Tidak ada batasan panjang nama

Secara teoritis, nama dapat memiliki karakter Cina di dalamnya, atau bahkan semua karakter Cina, namun dalam praktiknya, jangan lakukan ini.

1.2 Kata Kunci
merusakbawaanfungsiantarmukaPilih
kasusmenundapergipetastruktur
salurankalau tidakpergi kekemasanmengalihkan
konstanjikajangkauanjenismelanjutkan
untukimporkembaligagalapakah
1.3 Kata-kata yang dicadangkan

•konstan

true false iota nil

•jenis data

int int8 int16 int32 int64

uint uint8 uint16 uint32 uint64

float32 float64

complex128 complex64

byte rune string

bool error uintptr

•fungsi

make len cap new append copy

close delete complex real imag panic recover

1.4 Variabel
1.4.1 Jenis variabel
jenisGunakan tipe variabelkeluaran fmt
bilangan bulatint int8 int16 int32 int64 uint uint8 uint16 uint32 uint64%D
titik mengambangfloat32 float64%f dan %e
jamakcomplex128 complex64%v
booleanbool%T
penunjukuintptr%D
Mengutipmap slice channel%v
bytebyte%D
karakter apa punrune%D
rangkaianstring%S
kesalahanerror%v
1.4.2 Inisialisasi variabel
  • Jika tidak diinisialisasi secara eksplisit setelah deklarasi, tipe numerik diinisialisasi ke O, tipe string diinisialisasi ke string kosong, dan tipe Boolean diinisialisasi ke false.

    Tipe referensi, fungsi, pointer, dan antarmuka diinisialisasi ke nihil

    • var sebuah string=“cina”
    • var a, b ke dalam = 3, 7
    • var a="china", ketik inferensi
    • var a,b=“cina”, 7
  • Variabel (variabel non-global) di dalam fungsi dapat dideklarasikan dan diinisialisasi dengan: =

    • sebuah:=3
  • Garis bawah menunjukkan variabel anonim

    • _=2+4
  • Variabel anonim tidak menempati namespace dan tidak mengalokasikan memori, sehingga dapat digunakan kembali

1,5 konstanta

Konstanta harus diberi nilai ketika sudah ditentukan, dan nilainya tidak dapat diubah saat program sedang berjalan.

const PI float32=3.14

const(
	PI=3.14
	E=2.71
)

const(
  a=100
  b	//100,跟上一行的值相同
  c	//100,跟上一行的值相同
)

const(
	a = iota	//0
  b					//1
  c					//2
  d					//3
)

const(
	a = iota	//0
  b					//1
  _					//2
  d					//3
)

const(
	a = iota	//0
  b	= 30		//30
  c	= iota	//2
  d					//3
)
  • 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
1.6 Harafiah

Literal: Nama variabel tidak muncul, tetapi nilainya langsung muncul.Literal tipe dasar setara dengan konstanta

Tipe data yang berbeda tidak dapat dibandingkan, kecuali literal

fmt.Printf("9tn"04 ==4.00//用到了整型字面量和浮点型字面量
fmt.Printf("%vn".4i//虚数字面量0.4i
fmt.Printf("%tn", "u4f17'=='//Unicode和rune字面量
fmt.Printf("Hello nWorldn!n"//字符串字面量
  • 1
  • 2
  • 3
  • 4
1.7 Ruang lingkup variabel
variabel global
var (
  A=3	//全局变量,大写字母开头,所有地方都可以访问,跨package访问时需要带上package名称
	b=4	//全局变量,小写字母开头,本package内都可以访问
  • 1
  • 2
  • 3
  • 4
variabel lokal
func fool{
	b:=5 //局部变量,仅本函数内可以访问。内部声明的变量可以跟外部声明的变量有冲突,以内部的为准
  
	{
  	b:=6	//仅小圈定的作用域内可以访问,可以跟外部的变量有冲突
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
1.8 Komentar dan godoc
1.8.1 Bentuk komentar
  • Komentar satu baris.Dimulai dari //
  • Komentar multi-baris. Beberapa baris berturut-turut dimulai dengan //, atau gunakan /* sebelum paragraf dan */ di akhir paragraf.
  • Tidak ada baris kosong yang dapat muncul di antara komentar multi-baris
  • CATATAN: Menarik perhatian, TODO: Perlu optimasi di masa depan, Tidak berlaku lagi: Sangat disarankan untuk tidak menggunakan variabel atau fungsi.
  • Anda dapat menulis kode go dengan menambahkan indentasi sebelum baris komentar.
1.8.2 Posisi komentar
  • Komentar paket. Paket di atas xxx. Sebuah paket hanya perlu menulis komentar paket di satu tempat, biasanya di doc.go khusus.

    Hanya ada satu baris packagexxx dan komentar tentang paket tersebut.

  • Struktur komentar.di atas ketik xxx struct

  • Komentar fungsi.fungsi di atas xxx()

  • Komentar baris.di atas atau di sebelah kanan baris

1.8.3 pergi ke dok
  • go doc adalah perintah yang menyertai go
  • go doc kelas masuk/util
1.8.4 bahasa gaul
  • godoc dapat mengekspor versi web dokumen anotasi untuk kode proyek.
    • Anda perlu menginstal go terlebih dahulu, get golang.org/x/tools/cmd/godoc
    • Mulai http:godoc -http=:6060
    • Gunakan browser untuk mengunjungi: http://127.0.0.1:6060/pkg/go-course/entrance class