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

做网站是什么工作服装公司网站模板

做网站是什么工作,服装公司网站模板,wordpress使用个人写的页面,北京网站建设价格低#x1f308;Don’t worry , just coding! 内耗与overthinking只会削弱你的精力#xff0c;虚度你的光阴#xff0c;每天迈出一小步#xff0c;回头时发现已经走了很远。 #x1f4d7;概念 在Go语言中#xff0c;泛型#xff08;Generics#xff09;允许你编写可以处理… Don’t worry , just coding! 内耗与overthinking只会削弱你的精力虚度你的光阴每天迈出一小步回头时发现已经走了很远。 概念 在Go语言中泛型Generics允许你编写可以处理不同数据类型的函数和数据结构。 Go在1.18版本中引入了泛型使得开发者能够更灵活地编写代码减少重复。 泛型允许你定义一个函数或类型使其能够接受任意类型的参数而不需要在定义时指定具体的类型。 代码 基本使用 package mainimport fmt// 定义一个泛型函数 func Print[T any](value T) {fmt.Println(value) }func main() {Print(123) // 打印整数Print(Hello Go!) // 打印字符串Print(3.14) // 打印浮点数 }定义泛型struct package mainimport fmt// 定义一个泛型结构体 type Pair[T any] struct {First TSecond T }func main() {// 创建一个整型的 PairintPair : Pair[int]{First: 1, Second: 2}fmt.Println(intPair)// 创建一个字符串的 PairstringPair : Pair[string]{First: Hello, Second: World}fmt.Println(stringPair) }使用约束类型 package mainimport fmt// 定义一个约束只接受数字类型 type Number interface {int | int32 | int64 | float32 | float64 }// 定义一个泛型函数 func Add[T Number](a, b T) T {return a b }func main() {fmt.Println(Add(1, 2)) // 整数相加fmt.Println(Add(1.5, 2.5)) // 浮点数相加 }切片、链表泛型 看不懂警告大片注释来袭 package mainimport fmt// 定义一个函数SlicesIndex输入一个切片 s 和一个值 v返回一个int类型 // 这里看不懂先别急下面我会好好解释 // S ~[]E这里 S 是一个类型参数表示它是一个切片类型[]E // 使用了类型约束 ~表示 S 可以是任何基于 E 的切片类型例如 []int、[]string 等。 // E comparableE 是另一个类型参数表示可以与其他值进行比较的类型如整型、字符串等 // comparable 是一个内置的约束表示该类型支持相等比较。 // s S函数的第一个参数 s 是一个切片类型为 S。 // v E函数的第二个参数 v 是要查找的值类型为 E func SlicesIndex[S ~[]E, E comparable](s S, v E) int {//在切片中查找值 v 的索引找不到时返回-1for i : range s {if v s[i] {return i}}return -1 }// type List[T any]定义一个名为 List 的泛型类型。 // T 是一个类型参数any 表示 T 可以是任何类型。 type List[T any] struct {head, tail *element[T]//head 和 tail 是两个字段分别指向链表的头部和尾部元素//*element[T] 表示这两个字段是指向 element[T] 类型的指针。}// element[T] 定义结构体类型类型是any数据为val 任意类型指向下一个节点的指针next *element[T] type element[T any] struct {next *element[T]val T }// 定义函数Push lst 是指向链表的指针注意写法是List[T]可以直接修改链表的内容。 // v T 是要插入链表中的值类型为 T即链表支持的任意类型。 func (lst *List[T]) Push(v T) {//判断链表的尾指针 tail 是否为 nilif lst.tail nil {//如果链表为空创建一个新的 element[T]并将其值设置为 v然后将这个新元素的内存地址赋值给链表的头指针 headlst.head element[T]{val: v}//将 tail 指向 head因为此时链表中只有一个元素lst.tail lst.head} else {//如果链表非空创建一个新的 element[T]并将其值设置为 v然后将这个新元素链接到当前 tail 的 next 指针上。lst.tail.next element[T]{val: v}//更新 tail 指针使其指向新添加的元素保持 tail 始终指向链表的最后一个元素。lst.tail lst.tail.next} }// 输入定义函数AllElementslst 是指向链表的指针 // 输出返回一个 []T 类型的切片包含链表中的所有元素。 func (lst *List[T]) AllElements() []T {//定义空的切片 elems用于存储链表中的所有元素。var elems []T//for循环从链表的头部开始遍历。//e 是当前节点的指针初始指向链表的头部 lst.head//循环条件是 e 不为 nil即未到达链表末尾//在每次循环中将当前节点 e 的值 e.val 添加到切片 elems 中for e : lst.head; e ! nil; e e.next {elems append(elems, e.val)}//循环结束后返回包含链表中所有元素的切片 elemsreturn elems }func main() {var s []string{foo, bar, zoo}fmt.Println(index of zoo:, SlicesIndex(s, zoo))_ SlicesIndex[[]string, string](s, zoo)//定义一个 List[int] 类型的变量 lst这是一个空的整型链表lst : List[int]{}//调用push向链表添加元素lst.Push(10)lst.Push(13)lst.Push(23)//打印链表中的全部元素fmt.Println(list:, lst.AllElements()) }//输出 //index of zoo: 2 //list: [10 13 23]泛型理解 代码中看到[T any]之类的字眼就表示这是泛型灵活性泛型使得函数和数据结构能够处理多种类型减少了代码重复。类型安全在编译时检查类型确保类型安全。简化代码通过泛型可以编写更简洁和可重用的代码。 链表、切片泛型还需要多加练习掌握。 无他唯手熟尔。 无人扶我青云志我自踏雪至山巅。
http://www.w-s-a.com/news/599213/

相关文章:

  • 口碑好企业网站建设网站建设与什么专业有关
  • 助贷获客系统快速优化排名公司推荐
  • 重庆做网站优化推广的公司企业网站如何进行定位
  • 高密市赏旋网站设计有限公司山东广饶县建设局网站
  • 成都哪里有网站开发公司网业分离是什么
  • 购物导购网站开发女孩学建筑学好找工作吗
  • 做网站沈阳掌握夏邑进入公众号
  • 怎么做自动提卡网站谷歌推广怎么做
  • 大同网站建设熊掌号wordpress 首页单页
  • 青岛网站美工成都优秀网站建设
  • 聊城大型门户网站建设多版本wordpress
  • 建网站的公司 快云wordpress的搜索
  • 贷款网站模版东莞网站建设哪家专业
  • 做做网站已更新878网站正在建设中
  • dz旅游网站模板网站上做百度广告赚钱么
  • 青岛外贸假发网站建设seo优化名词解释
  • 四川建设厅网站施工员证查询网站建设行业政策
  • 网站全站出售dw怎么设计网页
  • 合肥网站建设方案服务网站建设推荐郑国华
  • 襄阳网站建设需要多少钱台州网站设计公司网站
  • 东莞专业拍摄做网站照片如何在百度上发布自己的广告
  • 网站建设费 科目做网站建设最好学什么
  • php商城网站建设多少钱深圳市建设
  • 有什么做糕点的视频网站黄岛做网站
  • 做视频课程网站建设一个普通网站需要多少钱
  • 专做化妆品的网站合肥做网站建设公司
  • 唐山企业网站网站建设费计入那个科目
  • 企业网站制作运营彩虹云主机官网
  • 如何建设废品网站如何在阿里云云服务器上搭建网站
  • 如何建立网站后台程序wordpress 后台管理