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

平台网站建设ppt佛山h5建站模板

平台网站建设ppt,佛山h5建站模板,杭州设计网站最好的公司,青岛企业网站制作公司初始化基本一样#xff0c;不同点需要注意#xff0c;make使用#xff0c;nil变量的访问 array 初始化#xff1a; 57 //修改元素值函数#xff0c;指针版本和副本版本#xff0c;指针版会修改原值58 func modify(arr [3]int, i int, v int) {59 //func modify(arr … 初始化基本一样不同点需要注意make使用nil变量的访问 array 初始化 57 //修改元素值函数指针版本和副本版本指针版会修改原值 58 func modify(arr [3]int, i int, v int) { 59 //func modify(arr *[3]int, i int, v int) { 60 arr[i] v 61 } 62 63 func main() { 64 var v [2]int //默认初始化为0 65 v1 : [2]int{} //默认初始化为0 66 v2 : [...]int{} //根据初始化列表决定元素个数元素个数为0 67 v3 : [3]int{2: 99} //指定索引初始化 68 69 fmt.Println(v, v1, v2, v3) 70 } slice 初始化 71 //切片函数参数版本 72 func modify(arr []int, i int, v int) { 73 arr[i] v 74 } 75 76 func main() { 77 //和数组区别在于是否指定元素个数和数组一样都是有长度的所有随机访问时小心越界 78 var v []int //v nilnil值切片没有底层数组 79 vv : []int(nil) //vv nilnil值切片没有底层数组 80 81 v0 : []int{} //v ! nilnil切片和0长度切片行为一致函数会等同对待 82 v1 : []int{1, 2} 83 84 var arr [3]int 85 v2 : arr[:] 86 v3 : arr[2:] 87 88 v3 v1 89 modify(v3, 0, 111) 90 v2 nil 91 92 v4 : make([]int, 3, 6) //若不指定cap则和len一致 93 94 //v5 : make([]int, 4) 95 //v5 v4[4:] //panic:slice bounds out of rangev4超过了len() 96 v4 push(v4, 123) 97 v4 push(v4, 123) 98 v4 push(v4, 123) 99 v4 push(v4, 123)100 101 fmt.Println(v nil, vv nil, v0 nil, v1, v2 nil, v3, cap(v4), len(v4), v4)102 103 } 数组可以用进行比较切片编译错误 append简单实现 45 func push(s []int, v int) []int { 46 var tmp_s []int 47 if len(s) cap(s) { 48 tmp_s s[:(len(s) 1)] 49 } else { 50 tmp_s make([]int, len(s)1, 2*len(s)) 51 copy(tmp_s, s) 52 } 53 54 tmp_s[len(s)] v 55 56 return tmp_s 57 } copy函数按照src,dst最小长度进行底层数组数据拷贝 appen使用 105 v5 : make([]int, 2, 6)106 v5 append(v5, 1, 2)107 v5 append(v5, v4...) append变长简单实现 76 func push_s(s []int, v ...int) []int { 77 var tmp make([]int, len(s)len(v)) 78 copy(tmp, s) 79 copy(tmp[len(s):], v) 80 81 return tmp 82 } slice内存技巧 不用分配新空间在原slice上修改 清理0数据 84 func RemoveInvalid2(s []int) []int { 85 i : 0 86 for _, v : range s { 87 if v ! 0 { 88 s[i] v 89 i 90 } 91 } 92 93 return s[:i] 94 } 95 96 func RemoveInvalid(s []int) []int { 97 s_tmp : s[:0] 98 for _, v : range s { 99 if v ! 0 {100 s_tmp append(s_tmp, v)101 }102 }103 104 return s_tmp105 } 107 func RemoveIndex(s []int, i int) []int {108 if i len(s) {109 return s110 }111 copy(s[i:], s[i1:])112 return s[:len(s)-1]113 }114 115 func Reverse(s []int) []int {116 if len(s) 2 {117 return s118 }119 for i : range s {120 if i (len(s) - i - 1) {121 return s122 }123 s[i], s[len(s)-i-1] s[len(s)-i-1], s[i]124 }125 return s126 } 我们也看到了slice作为函数参数的使用同样map也是会作为引用来使用的使用时要注意slice和map内部变化防止得不到想要的结果所以我一般会在函数返回后进行赋值 map 128 func insert(m map[int]string, i int, s string) map[int]string {129 m[i] s130 return m131 }132 133 func main() {134 var m map[int]string135 m1 : map[int]string{2: ss, 5: aa}136 delete(m1, 5)137 138 m2 : make(map[int]string)139 m3 : map[int]string{}140 m3 insert(m3, 2, aaaaaaa)141 142 m4 : make(map[int]map[string]bool)143 fmt.Println(m nil, m1, m2, m3, m4)144 } 注意key必须是可比较的类型如字符串数组可比较的字段结构体可比较的字段 slice不能比较但可以转换成字符串再存储为key struct 149 type Point struct {150 x, y float64151 }152 158 159 type line struct {160 pt []Point161 }163 func main() {164 /*165 l : []struct {166 pt []Point167 cnt int168 }{{169 pt: []Point{{170 x: 1,171 y: 2,172 }, {173 x: 3,174 y: 4,175 }},176 cnt: 2,177 }}178 */179 180 var pt Point181 pt.x 1182 pt.y 2183 184 pt1 : Point{1, 2} //这种初始化方式不推荐建议用下方185 pt2 : Point{x: 1, y: 2}186 187 l : []line{}188 189 var l1 line190 //l1 : line{}191 192 l append(l, l1)193 l[0].pt append(l[0].pt, Point{11, 22})194 fmt.Println(pt, pt1, pt2, l, l1)195 } 结构方法使用 153 //func (p *Point) Distance(target *Point) float64 {154 func (p Point) Distance(target *Point) float64 {154 p.x 0.1155 target.x 0.2156 return 0.0157 } 197 pt.Distance(pt1)198 fmt.Println(pt, pt1) 改变函数调用方类型试试结果的不同 go会根据调用方类型隐式转换所以197行可以正确运行
http://www.huolong8.cn/news/157142/

相关文章:

  • dede网站如何换logo只做鞋子的网站
  • 网站设计实训心得体会建设局网站查勘表是什么
  • 上海兼职网站制作scratch软件下载
  • 做网站教程百度云优秀的vi设计手册
  • 做网站哪个语言快shein跨境电商平台
  • 网站建设(信科网络)大数据平台建站
  • 龙岗 营销型网站建设安徽六安地图
  • 广州市网站建设公司泉州哪个公司网站做的好
  • 模板建站和开发网站区别东营建设信息网登录
  • 百度做网站多少钱能做网站开发使用的工具
  • 网站新闻页面无法翻页wordpress 筛选
  • 山东省建设工会网站郴州网站维护
  • 网站开发石家庄做旅游网站的产品经理如何
  • 一个好网站设计上海的广告公司有哪些
  • 做营销网站设计如何查看网站空间商
  • 电商设计网站有哪些功能模块网站内部优化的方法
  • 一个域名可以做两个网站吗WordPress360收录
  • 网站设计 尺寸遵义网签备案查询系统
  • 成立网站建设领导小组的通知房管局网站建设
  • 西宁网站设计公司小程序登录不上
  • 做图哪个网站素材多英文网站怎么做301跳转
  • 知名营销网站开发现在有哪些培训学校
  • 企业seo整站优化方案免费空间最大的网盘
  • 网站建设类的公司名怎么起做啥英文网站赚钱
  • 网站建设策划 优帮云手机网站 代码
  • 找做企业网站网站制作老了
  • 陕西建设注册中心网站现代化的中国风网站
  • 江西省新的建设厅三类人员网站体育设施建设网站
  • 石家庄个人建站模板网站建设和网页设计视频教程
  • 上海网站推广方法wordpress个人博客主题2019