分类分类
2015-11-03 15:06作者:zhao
Go编程提供的一个重要的数据类型就是映射,唯一映射一个键到一个值。一个键要使用在以后检索值的对象。给定的键和值,可以在一个Map对象存储的值。值存储后,您可以使用它的键检索。
定义映射
必须使用make函数来创建一个映射。
/*declareavariable,bydefaultmapwillbenil*/
varmap_variablemap[key_data_type]value_data_type
/*definethemapasnilmapcannotbeassignedanyvalue*/
map_variable=make(map[key_data_type]value_data_type)
例子
下面的例子说明创建和映射的使用。
packagemain
import"fmt"
funcmain{
varcoutryCapitalMapmap[string]string
/*createamap*/
coutryCapitalMap=make(map[string]string)
/*insertkey-valuepairsinthemap*/
countryCapitalMap["France"]="Paris"
countryCapitalMap["Italy"]="Rome"
countryCapitalMap["Japan"]="Tokyo"
countryCapitalMap["India"]="NewDelhi"
/*printmapusingkeys*/
forcountry:=rangecountryCapitalMap{
fmt.Println("Capitalof",country,"is",countryCapitalMap[country])
}
/*testifentryispresentinthemapornot*/
captial,ok:=countryCapitalMap["UnitedStates"]
/*ifokistrue,entryispresentotherwiseentryisabsent*/
if(ok){
fmt.Println("CapitalofUnitedStatesis",capital)
}else{
fmt.Println("CapitalofUnitedStatesisnotpresent")
}
}
让我们编译和运行上面的程序,这将产生以下结果:
CapitalofIndiaisNewDelhi
CapitalofFranceisParis
CapitalofItalyisRome
CapitalofJapanisTokyo
CapitalofUnitedStatesisnotpresent
delete()函数
delete()函数是用于从映射中删除一个项目。映射和相应的键将被删除。下面是一个例子:
packagemain
import"fmt"
funcmain{
/*createamap*/
coutryCapitalMap:=map[string]string{"France":"Paris","Italy":"Rome","Japan":"Tokyo","India":"NewDelhi"}
fmt.Println("Originalmap")
/*printmap*/
forcountry:=rangecountryCapitalMap{
fmt.Println("Capitalof",country,"is",countryCapitalMap[country])
}
/*deleteanentry*/
delete(countryCapitalMap,"France");
fmt.Println("EntryforFranceisdeleted")
fmt.Println("Updatedmap")
/*printmap*/
forcountry:=rangecountryCapitalMap{
fmt.Println("Capitalof",country,"is",countryCapitalMap[country])
}
}
让我们编译和运行上面的程序,这将产生以下结果:
OriginalMap
CapitalofFranceisParis
CapitalofItalyisRome
CapitalofJapanisTokyo
CapitalofIndiaisNewDelhi
EntryforFranceisdeleted
UpdatedMap
CapitalofIndiaisNewDelhi
CapitalofItalyisRome
CapitalofJapanisTokyo
方法
Go编程语言支持特殊类型的函数调用的方法。在方法声明的语法中,“接收器”的存在是为了表示容器中的函数。该接收器可用于通过调用函数“.”运算符。下面是一个例子:
语法
func(variable_namevariable_data_type)function_name()[return_type]{
/*functionbody*/
}
packagemain
import(
"fmt"
"math"
)
/*defineacircle*/
typeCirclestrut{
x,y,radiusfloat64
}
/*defineamethodforcircle*/
func(circleCircle)area()float64{
returnmath.Pi*circle.radius*circle.radius
}
funcmain(){
circle:=Circle(x:0,y:0,radius:5)
fmt.Printf("Circlearea:%f",circle.area())
}
当上述代码被编译和执行时,它产生了以下结果:
Circlearea:78.539816
相关