当前位置: 首页 > news >正文

那个网站做的刀比较好国内永久免费crm代码

那个网站做的刀比较好,国内永久免费crm代码,自贡公司做网站,wordpress浏览数插件目录 可以作为 map 键的类型 不能作为 map 键的类型 最佳实践 小结 在 Go 语言中#xff0c;map 是一种内置的关联数据结构类型#xff0c;由一组无序的键值对组成#xff0c;每个键都是唯一的#xff0c;并与一个对应的值相关联。本文将详细介绍哪些类型的变量可以作为…目录 可以作为 map 键的类型 不能作为 map 键的类型 最佳实践 小结 在 Go 语言中map 是一种内置的关联数据结构类型由一组无序的键值对组成每个键都是唯一的并与一个对应的值相关联。本文将详细介绍哪些类型的变量可以作为 map 的键并通过实例进行说明。 可以作为 map 键的类型 因为 map 需要能够判断两个键是否相等以确保每个键的唯一性所以并非所有类型都可以作为 map 的键可以作为 map 键的数据类型必须满足以下条件 可比较性Comparable用于定义 map 键的类型必须是可比较的也就是说Go 语言能够确定两个相同类型的键是否相等。这要求该类型支持 操作符来进行比较。不可变性Immutable虽然 Go 语言规范并未明确指出键必须不可变但由于 map的内部实现机制键在创建后不能改变因此通常选择不可变类型作为键。 以下是可以作为 map 键的类型 基本类型几乎所有的基本类型整型、浮点型、字符串、布尔型等都可以作为 map 的键因为它们都支持相等性比较。 package mainimport fmtfunc main() {// 整数作为键mapInt : map[int]string{1: one,2: two,3: three,}// 字符串作为键mapString : map[string]int{Alice: 25,Bob: 30,Eve: 22,}// 浮点数作为键不推荐因为浮点数的比较可能会因精度问题导致不准确mapFloat64 : map[float64]string{1.1: one point one,2.2: two point two,3.3: three point three,}// 布尔值作为键mapBool : map[bool]string{true: true,false: false,}fmt.Println(mapInt, mapString, mapFloat64, mapBool) } 指针类型指针类型可以作为 map 的键因为指针的比较是基于指向的内存地址的。简单示例代码如下 package mainimport fmtfunc main() {type Person struct {Name stringAge int}alice : Person{Alice, 25}bob : Person{Bob, 30}mapPointer : map[*Person]string{alice: Alices pointer,bob: Bobs pointer,}fmt.Println(mapPointer) } 接口类型接口类型可以作为 map 的键只要接口的动态类型即实际存储的类型是可比较的。简单示例代码如下 package mainimport fmttype Equalizer interface {Equal(Equalizer) bool }type IntEqualizer intfunc (i IntEqualizer) Equal(e Equalizer) bool {other, ok : e.(IntEqualizer)return ok i other }func main() {mapInterface : map[Equalizer]string{IntEqualizer(1): one,IntEqualizer(2): two,IntEqualizer(3): three,}fmt.Println(mapInterface) } 结构体类型结构体类型可以作为 map 的键只要其所有字段都是可比较的。简单示例代码如下 package mainimport fmtfunc main() {type Point struct {X, Y int}mapStruct : map[Point]string{{1, 2}: Point at (1,2),{3, 4}: Point at (3,4),}fmt.Println(mapStruct) } 数组类型数组类型可以作为 map 的键只要数组中的元素类型是可比较的。简单示例代码如下 package mainimport fmtfunc main() {arr1 : [3]int{1, 2, 3}arr2 : [3]int{4, 5, 6}mapArray : map[[3]int]string{arr1: 123,arr2: 456,}fmt.Println(mapArray) } 不能作为 map 键的类型 以下类型不能作为 map 的键 切片类型因为切片是引用类型其内容可能会变化使得比较操作不确定。函数类型因为 Go 语言中没有为函数定义相等性比较操作。map 类型map 类型不能作为 map 的键因为也是引用类型且没有定义相等性比较操作。包含上述不可比较类型的复合类型任何包含上述不可比较类型如切片、函数、映射的复合类型如结构体也不能作为 map 的键。 最佳实践 使用不可变类型作为键map 的键必须是可比较的类型可以使用任何内置的可比较类型如 int、string、float 等。如果键是自定义类型需要使该类型必须支持 和 ! 比较运算。如果使用结构体作为键需要保证结构体的字段不会被修改。如果结构体的字段发生变化可能会导致无法找到键值对。虽然指针可以作为键但是两个相同内容的不同指针会被视为不同的键。字符串作为键时尤其是在有大量独特字符串时可能会导致内存使用的增加。这种情况下可以考虑使用字符串的哈希值作为键但要注意潜在的散列冲突。最小化键的大小更小的键可以减少内存的占用同时可以提高查找的效率。 小结 在 Go 语言中只有那些不可变并且可比较的类型才能作为 map 的键。在日常编程中应该选择合适的键类型以确保 map 的高效和准确性。
http://www.w-s-a.com/news/120034/

相关文章:

  • 河南省和建设厅网站首页西安找建网站公司
  • 网页设计基础代码网站进出成都最新通知
  • 如何创建网站乐清网络科技有限公司
  • 沈阳市网站制作艺术字体logo设计生成器
  • 网站设计常用软件都有哪些中国建设银行官方招聘网站
  • 证券投资网站建设视频直播怎么赚钱的
  • 建设酒店网站ppt模板下载郑州小程序设计外包
  • 网站建设自我总结google推广公司
  • 安全网站建设情况wordpress 评论表单
  • 网站建设发言材料个人网站推广软件
  • php建站软件哪个好南京哪家做网站好
  • 排名好的手机网站建设番禺网站建设专家
  • 番禺怎么读百度有专做优化的没
  • 网站开发中应注意哪些问题网络营销的主要特点
  • 网站定制案例北京网站制作招聘网
  • 网站建设与推广实训小结网站建设专业英文
  • 郑州网站建设动态凡科网站建设是免费的吗
  • 湖北手机网站建设wordpress转emlog博客
  • 北京东站设计网名的花样符号
  • 安徽建设厅网站首页网站开发aichengkeji
  • 自贡网站制作荣茂网站建设
  • 什么做的网站吗正规的机械外包加工订单网
  • 网络工程公司的业务邵阳seo快速排名
  • 博主怎么赚钱网站seo找准隐迅推
  • 营销号经典废话北京网站建设公司网站优化资讯
  • 一六八互联网站建设怎么做套版网站
  • wordpress 书站建筑公司简介范文大全
  • 建设官方网站多少鲜花网站建设的主要工作流程
  • 卖主机网站轻量wordpress主题
  • 网站建设规划书结构制作一个自己的网站