Go 언어 기능 소개

풀어 주다: 2019-11-30 14:52:23
앞으로
2217명이 탐색했습니다.

Go 언어 기능 소개

Go 함수와 다른 언어의 차이점

1. 함수 형식이 다릅니다

func GetMsg(i int) (r string) {
    fmt.Println(i)
    r = "hi"
    return r
 
}
로그인 후 복사

func는 이것이 함수임을 나타냅니다.

GetMsg는 함수 이름입니다

(i int) 함수는 int 매개변수

(r string) 이 함수는 문자열 형식의 반환값을 반환합니다

2. 이 함수는 여러 개의 반환값을 반환할 수 있습니다

이것은 c와 php와 다르지만 lua

func GetMsg(i int) (r string, err string) {
    fmt.Println(i)
    r = "hi"
    err = "no err"
    return r,err
 
}
로그인 후 복사

3와 같습니다. . defer 사용

defer는 "함수가 종료될 때 호출됨"을 의미합니다. 특히 파일을 읽고 쓸 때는 닫기 작업에 defer를 사용해야 합니다.

func ReadFile(filePath string)(){
    file.Open(filePath)
    defer file.Close()
     
    if true {
        file.Read()
    } else {
        return false
    }
 
}
로그인 후 복사

이것은 다음을 의미합니다. file.Open 직후에 close를 호출합니다. false를 반환하면 file.Close()를 호출합니다. 이렇게 하면 C 언어의 메모리 누수 문제를 효과적으로 방지할 수 있습니다.

4. 이해하기 어려움: 패닉, 복구 및 지연

defer: 권장: go defer(go 지연 기능) 소개

Panic 및 Recover는 다른 언어에서는 throw 및 복구로 간주됩니다.

다음 예:

ackage main
 
import "fmt"
 
func main() {
    f()
    fmt.Println("Returned normally from f.")
}
 
func f() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Recovered in f", r)
        }
    }()
    fmt.Println("Calling g.")
    g(0)
    fmt.Println("Returned normally from g.")
}
 
func g(i int) {
    if i > 3 {
        fmt.Println("Panicking!")
        panic(fmt.Sprintf("%v", i))
    }
    defer fmt.Println("Defer in g", i)
    fmt.Println("Printing in g", i)
    g(i + 1)
}
로그인 후 복사

반환:

Calling g.
Printing in g 0
Printing in g 1
Printing in g 2
Printing in g 3
Panicking!
Defer in g 3
Defer in g 2
Defer in g 1
Defer in g 0
Recovered in f 4
Returned normally from f.
로그인 후 복사

Panic은 메시지를 던지고 함수에서 빠져나옵니다. Recover는 정보를 수신하고 처리를 계속합니다.

추천: 언어 튜토리얼로 이동

위 내용은 Go 언어 기능 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!