Go 언어에서 유형 시스템은 변수 값, 유형 안전성 및 유지 관리 가능성을 지정합니다. Go 언어는 구조 기반 유형 시스템을 채택하여 사용자 정의 유형(구조체) 및 유형 별칭을 정의할 수 있습니다. 값 유형은 var 키워드로 선언되는 반면 포인터 유형은 유형 이름 앞에 별표가 있습니다. 인터페이스는 메서드 컬렉션을 정의하며, 인터페이스를 구현하는 형식은 모든 메서드를 구현해야 합니다.
소개
유형 시스템은 값의 구조, 작동 및 동작을 지정하는 모든 프로그래밍 언어의 핵심 기능입니다. Go 언어는 유형 안전성과 유지 관리성을 강조하는 구조 기반 유형 시스템을 사용합니다.
유형 선언
Go 언어에서는 다음 구문을 사용하여 유형을 선언할 수 있습니다.
type <类型名> <基础类型>
예를 들어 다음 코드는 Name<이 포함된 <code>Person
이라는 유형을 선언합니다. /code> 및 Age
두 필드: Person
的类型,其中包含 Name
和 Age
两个字段:
type Person struct { Name string Age int }
值类型和指针类型
Go 语言中的每个值都属于特定的类型,称为其值类型。可以通过使用关键字 var
宣告变量并指定其值类型。
var person Person
Go 语言还支持指针类型,指向另一个类型的变量。可以通过在类型名前加一个星号(*)来创建指针类型。
var personPtr *Person
类型别名和基础类型
类型别名允许为现有的类型创建别名。基础类型是不能再被分解的内置类型,例如 int
、float64
和 string
。
以下代码创建了 FullName
类型的别名,其基础类型是 string
:
type FullName = string
接口
接口是一个类型,定义了一组方法。任何类型只要实现了接口中的所有方法,就可以称为实现该接口。
以下代码定义了一个 Animal
接口,其中包含一个 Speak
方法:
type Animal interface { Speak() }
实战案例
以下是一个使用 Go 类型系统的简短示例:
package main type Person struct { Name string Age int } func main() { person1 := Person{"John", 30} // 值类型 person2 := &Person{"Jane", 35} // 指针类型 fmt.Println(person1.Name) fmt.Println(*person2.Name) }
此代码创建了两个 Person
类型的值:person1
是一个值类型,而 person2
是一个指向类型为 Person
rrreee
var
키워드를 사용하여 변수를 선언하고 해당 값 유형을 지정할 수 있습니다. 🎜rrreee🎜Go 언어는 다른 유형의 변수를 가리키는 포인터 유형도 지원합니다. 포인터 유형은 유형 이름 앞에 별표(*)를 추가하여 생성할 수 있습니다. 🎜rrreee🎜🎜유형 별칭 및 기본 유형🎜🎜🎜유형 별칭을 사용하면 기존 유형에 대한 별칭을 만들 수 있습니다. 기본 유형은 int
, float64
및 string
과 같이 더 이상 분해할 수 없는 내장 유형입니다. 🎜🎜다음 코드는 기본 유형이 string
인 FullName
유형에 대한 별칭을 만듭니다. 🎜rrreee🎜🎜Interface 🎜🎜🎜인터페이스는 집합을 정의하는 유형입니다. 방법의. 인터페이스의 모든 메서드를 구현하는 한 모든 유형은 인터페이스를 구현한다고 할 수 있습니다. 🎜🎜다음 코드는 Speak
메서드가 포함된 Animal
인터페이스를 정의합니다. 🎜rrreee🎜🎜실용 사례🎜🎜🎜다음은 Go 유형 시스템을 사용하는 간단한 예입니다. : 🎜rrreee🎜이 코드는 Person
유형의 두 값을 생성합니다. person1
은 값 유형이고 person2
는 >Person 변수에 대한 포인터입니다. 🎜위 내용은 Go 언어의 유형 시스템 살펴보기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!