비교적 젊은 프로그래밍 언어인 Golang은 특히 백엔드 개발 분야에서 점점 더 많은 관심과 호감을 얻었습니다. 이 글에서는 초보자가 빠르게 시작할 수 있도록 Golang의 기본 구문과 일반적인 프로그래밍 패러다임을 소개합니다.
1. 기본 구문
변수를 선언하는 방법에는 여러 가지가 있습니다. var 키워드를 사용하거나 자동 유형 추론을 위해 := 연산자를 사용할 수 있습니다.
var i int // 默认值为0 i = 10 j := "Hello World" // 自动推导类型为string
Constant life는 const 키워드를 열거 유형, 값, 문자열 등에 사용할 수 있습니다.
const ( Pi = 3.14159265358979323846 Apples = 1 << iota // Apples的值是1左移0位,即1 Oranges // Oranges的值是1左移1位,即2 Bananas // Bananas的值是1左移2位,即4 )
Go 언어의 제어 구조는 if-else, switch-case, for를 포함한 다른 언어와 동일합니다. 루프 및 점프 문:
if i > 10 { fmt.Println("i is greater than 10") } else { fmt.Println("i is less than or equal to 10") } switch { case i < 0: fmt.Println("i is negative") case i > 0: fmt.Println("i is positive") default: fmt.Println("i is zero") } for i := 0; i < 10; i++ { fmt.Println(i) } // 跳转语句 goto label1 fmt.Println("this line will never get executed") label1: fmt.Println("jumped to label1")
배열은 값 유형이고 길이는 선언 시 결정되는 반면, 슬라이스는 참조 유형이며 길이는 동적으로 변경됩니다. 슬라이스는 make 함수를 통해 생성되거나 슬라이스 작업을 통해 생성될 수 있습니다.
// 数组 var arr [5]int for i := 0; i < 5; i++ { arr[i] = i } // 切片的创建和操作 var slice1 []int = arr[1:3] slice2 := make([]int, 5, 10) // 第2个参数是长度,第三个参数是容量 slice2 = append(slice2, 1, 2, 3)
Golang의 구조는 필드뿐만 아니라 메소드도 정의할 수 있습니다. 구조체의 포인터 유형은 . 및 -> 연산자를 사용하여 필드 및 메소드에 액세스하는 데 사용할 수 있습니다.
type Person struct { name string age int } func (p Person) SayHello() { fmt.Println("Hello, my name is", p.name, ", and I am", p.age, "years old.") } func main() { p := Person{name: "Alice", age: 30} p.SayHello() pp := &p fmt.Println(pp.age) }
2. 프로그래밍 패러다임
Golang의 객체 지향 프로그래밍도 다음 항목에 크게 의존합니다. 구조와 방법. 여기서 인터페이스 유형을 사용하여 공유 메소드를 정의할 수 있습니다.
type Animal interface { Speak() string } type Dog struct { name string } func (d Dog) Speak() string { return "Woof! I am " + d.name } func main() { d := Dog{"Fido"} fmt.Println(d.Speak()) }
Golang은 자연스럽게 동시 프로그래밍을 지원하는 언어입니다. 고루틴과 채널의 개념을 사용하면 효율적인 동시 프로그램을 쉽게 구현할 수 있습니다.
func worker(id int, c chan int) { for { n, ok := <-c if !ok { break } fmt.Printf("Worker %d received %d ", id, n) } fmt.Printf("Worker %d is done ", id) } func createWorker(id int) chan<- int { c := make(chan int) go worker(id, c) return c } func main() { c := make(chan int) var wg sync.WaitGroup for i := 0; i < 10; i++ { wg.Add(1) go func(id int) { c := createWorker(id) for j := 0; j < 10; j++ { c <- j } wg.Done() }(i) } wg.Wait() close(c) time.Sleep(time.Second) }
위는 Golang의 기본 구문 및 프로그래밍 패러다임입니다. 보다 고급 언어 기능과 실제 적용 시나리오에 대한 논의에는 언어에 대한 숙련도가 더 필요합니다. 깊이 있는 연구와 연구.
위 내용은 golang에서 코드를 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!