汽车租赁网站开发厦门seo关键词优化培训

web/2025/9/28 23:18:00/文章来源:
汽车租赁网站开发,厦门seo关键词优化培训,湖南长沙公司有哪些,南昌seo排名外包来源#xff1a;http://www.cnblogs.com/AllenDang/archive/2012/03/03/2378534.html 从2000年至今#xff0c;也写了11年代码了#xff0c;期间用过VB、Delphi、C#、C、Ruby、Python#xff0c;一直在寻找一门符合自己心意和理念的语言。我很在意写代码时的手感和执行的效…来源http://www.cnblogs.com/AllenDang/archive/2012/03/03/2378534.html 从2000年至今也写了11年代码了期间用过VB、Delphi、C#、C、Ruby、Python一直在寻找一门符合自己心意和理念的语言。我很在意写代码时的手感和执行的效率所以在Go出现之前一直没有找到。在熟悉Go之后我虽没有停下脚步也去体验了D语言但几乎立即就放弃了它的设计还是太复杂。 就说说Go吧。它的好其实也就两个字——简洁 看很多朋友的留言都觉得这些“少个括号、少个分号”之类的东西没什么意义真的吗问题是既然可以没有为什么非得有既然能够少打一个字符为什么多打了还挺开心还觉得天经地义这里简单一点那里简单一点总的来说是不是就简单了很多这里的设计简洁一点那里简洁一点是否整体就是紧凑高效 很多东西要整体去体会才能感觉到真正的强大。没有前面这些语法上的各种“看起来没什么用”的支持怎么能做到后面提到的那些设计上的简洁 我坚信少就是多简单就是强大不能减一分的设计才是真正的好设计 简洁的变量声明和赋值 拿最简单的声明变量和赋值来看下面这一句完成了声明类型到赋值最后还有那个常见的分号作为语句的结束。 var i int 10; 这个一点都不简洁对吧为什么非要有“var”为什么不能自己推导变量类型为什么结尾非要加上分号这三个问题我相信Go语言的设计者也问过并且都针对性的给了改进。重新来过。 i : 10 怎么样“:”是声明并推导类型的语法糖结尾的分号也省了因为这里我换行了编译器明白的。 还可以一次性声明并赋值多个变量。 i, j, k : 1, 2, 3 不同的类型也可以。 i, j, k : 1, 1.0, “hello” 如果要声明一堆变量但暂时不赋值呢可以这样。 var ( i, j int s string u, v, s 2.0, 3.0, bar ) Go的设计者甚至觉得多打几个“var”都不应该 简洁的if 有点意思了对吧我学习一门新语言的时候第一眼看变量类型和声明第二眼就会去看逻辑控制的语法。现在来看看都有些什么 if i 10 { println(“Greater then 10”) } 稀松平常啊难道一个简单的if还能更简单恩的确是的。首先if后面的条件判断没有人逼你再加上括号了仅仅是少了两次按键嘛还有呢还有下面这个应该是很常见的if使用场景。 result : SomeMethod() if result 0 { } 很多时候result这个变量其实仅仅用于条件判断完全可以在if之后就扔掉所以Go有了这么个写法。 if result : SomeMethod(); result 0 { } 这个表达式太常用了真是谁写谁知道每次我写着一行都会心里一爽。来看看纠结一点的if段。 if a { } else if b { } else if c { } else { } 这种写法是可以的但不是Go推荐的理由是可以更简洁。比如强悍的switch。 强悍的switch 这是很大家熟知的switch用法注意没有break哦Go里面case之间不会“下穿”。 switch tag { default: s3() case 0, 1, 2, 3: s1() case 4, 5, 6, 7: s2() } 神奇一点的switch嘿嘿与if异曲同工之妙。 switch x : f(); { // missing switch expression means true case x 0: return -x default: return x } 还有这个有了这个更加明确的写法你真的还会if…else if…else if…else…吗 switch { case x y: f1() case x z: f2() case x 4: f3() } 条件判断舒服了循环呢 孤单的for 其实我一直不太明白为什么一门语言里面要提供多个循环语法呢for、while、do…while…都是不可替代的用哪一个呢似乎都是看个人爱好吧可能大家随便就可以举个例子出来证明这三个东西存在的必要和细微的差别但对于我来说做同一件事情如果有多种方法其实就是设计上的冗余会对使用者造成或多或少的困扰。来看看Go的循环吧。 for i : 0; i 10; i { } for a b { } for { } 看吧一个for就搞定所有情况了。来看一个常用的遍历集合一把来说会写成这样。 count : len(someArray) for i : 0; i count; i { println(someArray[i]) } 简化这个Go给出了一个关键字“range”先看用法。 for i, value : range someArray { // i 是整型代表下标 // value就是数组内值的类型 } range不单单可以用于数组实际上它可以用于任何集合比如map。 m : map[string]int{mon:0, tue:1, wed:2, thu:3, fri:4, sat:5, sun:6} for i, s : range a { // type of i is int // type of s is string } 这里只是提到了几点最基本的语法场景Go里面还有很多 函数可以返回多个值 其实能够在一行多重赋值的语言挺多的但一个函数能返回多个值的就很少了比如在C#里面如果要返回两个int通常会这么干。 public class TwoInts { public int A; public int B; } public class Foo { public TwoInts ReturnTwoInt(); } 然后就可以 TwoInts ti foo.CalcTwoInt() 觉得悲催吗也许你都麻木了对吗很多语言都是这么设计的。函数只能返回一个值最大的问题是会导致出现很多没必要的数据结构。上面就体现了这个冗余当然你说可以用out关键字让函数返回但这个语法用起来就不是那么安全了。而这个问题在Go里面解决起来太容易了因为Go的函数可以返回多个值 func returnTwoInt() (int, int) { } a, b : returnTwoInt() 我对Go的好感就是从这里萌芽的这让我的库里面从此少了很多数据结构这无形中就能降低设计的复杂度。 函数内部声明的对象指针可以安全的返回 func ReturnPointer() *Object1 { obj : new Object1() obj.A “hello” return obj } Go的垃圾回收器会处理好这种情况的放心啦 异常处理defer是啥能吃吗 为什么异常处理那么复杂多少人可以安全的实现下面这个逻辑以下是伪代码。 File f File.Read(“c:\\text.txt”) f.Write(xxx) f.Close() 我相信有经验的码农们脑子里面瞬间出现了各种版本的try…catch…finally…还有各种各样的书写规范比如“catch”里面的逻辑不能在抛异常之类的东西。其实想想我们的要求很简单打开一个文件然后保证它在最后被关闭。仅此而已为什么做这么简单的一件事情非要那么复杂看看人家Go是怎么做的 func SaveSomething() { if f, err : os.Open(“c:\\text.txt”); err nil { //各种读写 defer f.Close() } } 凡是加了defer的函数都会在当前函数(这里就是SaveSomething)执行完毕之后执行。就算“//各种读写”时发生异常f.Close也会坚定的在SaveSomething退出时被执行。有了这个释放点资源关闭个把句柄这种小事再也无足挂齿 接口再也不用“实现”了 从我接触OO思想一来凡是有接口的语言都以不同的方式要求类“实现”接口这样的方式我一直都认为是天经地义的直到我遇见了Go。 type Speaker interface { Say() } 上面定义了一个接口只有一个方法Say不需要参数也没有返回值。Go里面任何拥有某个接口所定义所有方法的东西都默认实现了该接口。这是一句拥有太多内涵的话足矣对设计思路产生重大的影响。比如下面这个方法它接受一个类型为Speaker的参数。 func SaySomething(s Speaker) { s.Say() } 那么所有拥有Say()方法的东西都可以往里扔。 在Go的世界里所有的东西都默认实现了interface{}这个接口。有了这个概念即使没有泛型也能有效的降低设计复杂度。 多线程还能更简单点吗 要写多线程你要懂Thread懂各种锁懂各种信号量。在各类系统里面“异步”逻辑通常代表“困难”。这是Go最强劲的部分你见过比下面这个还简单的异步代码吗以下代码摘自Go的官方范例 func IsReady(what string, minutes int64) {      time.Sleep(minutes * 60*1e9);      fmt.Println(what, is ready)  }  go IsReady(tea, 6);  go IsReady(coffee, 2);  fmt.Println(Im waiting....); 执行的结果是打印:  Im waiting.... (right away)  coffee is ready (2 min later)  tea is ready (6 min later) Go语言内置了“go”这个语法任何go的方法都将会被异步执行。那异步方法之前传递消息呢用channel呗。意如其名就是一个管道一个往里写另外一个等着读。 ch : make(chan int) //创建一个只能传递整型的管道 func pump(ch chan int) {      for i : 0; ; i { ch - i } //往管道里写值  } func suck(ch chan int) {      for { fmt.Println(-ch) } //这里会等着直到有值从管道里面出来  } go pump(ch) //异步执行pump go suck(ch) //异步执行suck 嘿嘿然后你就看到控制台上输出了一堆数字。 这次就写到这儿吧对不住Go里面其他的好东西了哥饿了就不一一出场亮相了抱歉抱歉鞠躬下台

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83576.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

北京网站名称注册证书php作品源代码免费下载

转载自 Sentinel如何使用 简介 Sentinel 可以简单的分为 Sentinel 核心库和 Dashboard。核心库不依赖 Dashboard,但是结合 Dashboard 可以取得最好的效果。 这篇文章主要介绍 Sentinel 核心库的使用。如果希望有一个最快最直接的了解,可以参考 新手指…

php企业网站开发框架开发公司可以顾保安

导入第三方库时出现了sdk版本不兼容问题 为我们app的module所支持的sdk最低版本与依赖module的sdk最低版本不一致 把15--》16即可

网站的营销功能百姓网个人征婚

在Java中实现记录1000万用户连续7天登录的功能,可以使用Redis的Bitmap来跟踪每个用户的登录状态。以下是一个简化的Java示例,使用了Jedis库作为Redis的Java客户端。 首先,确保你已经在项目中添加了Jedis的依赖。如果你使用Maven,…

找天津网站建设公司做个网站多少钱上海门户网

C99增加了一个新特性:指定初始化器(designated initializer)。利用该特性可以初始化指定的数组元素,也可以初始化指定的结构体变量。本文主要分享:使用指定初始化器初始化数组。例如,只初始化数组中的最后一个元素。对于传统的C初…

设计网站思路如何写周村区住房和城乡建设厅网站

跟读者建立联系【研究的艺术一】这一次李沐博士给大家精读的是一本关于论文写作的书籍。这本书总共包含四个大的章节,本期视频李沐博士介绍的是第一个章节:Research,Researchers,and Readers。 0. 前言 视频开头,李沐…

哔哩哔哩官方网站首页除了dw还有什么可以做网页

🌈个人主页:聆风吟 🔥系列专栏:网络奇遇记、Cpolar杂谈 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言系统环境1. Windows 安装Elasticsearch2. 本地访问Elasticsearch3. Windows 安装…

做网站后台怎么搭建网页设计与制作模块1课后答案

TextLoader用于从文本文件加载数据。您需要指定什么是数据列、它们的类型以及在文本文件中的位置。当输入文件包含许多相同类型的列(通常打算一起使用)时,我们建议从一开始就将它们作为向量列进行加载:这样,数据的架构…

高端网站改版顾问wordpress 开启rss

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 在 QML 中,Path 是一种用于定义和描述路径的元素,通常需要和 Canvas、PathView、Shape 等元素结合一起使用,用于生成复杂的图形或动画效果。 所谓路径,是由一系列路径元素组成的集合,从起点开始,各段…

html5网站动态效果优质的外国网站

博主作为一名大模型开发算法工程师,很希望能够将所学到的以及实践中感悟到的内容梳理成为书籍。作为先导,以专栏的形式先整理内容,后续进行不断更新完善。希望能够构建起从理论到实践的全流程体系。 助力更多的人了解大模型,接触大模型,一起感受AI的魅力! 1.语言模型的历…

移动端快速建站中国商务商会官方网站

荒野大镖客2三星毛皮怎么获得?想必很多朋友都还不是很清楚吧,所以呢小编今天给大家带来的就是荒野大镖客2三星毛皮狩猎技巧分享,需要的朋友还不快进来看看?三星毛皮狩猎技巧分享猎物体型分水岭建议以狐狸类为例。(1)中型猎物[比狐…

营销型网站建设的特点阿里轻云wordpress

介绍 在Vue.js应用程序中,随着项目复杂度的增加,组件之间的数据共享和管理变得困难。为了解决这个问题,Vue.js提供了一个名为Vuex的状态管理模式。Vuex可以帮助我们更有效地组织、管理和共享应用程序的状态。 什么是Vuex? Vuex…

网站制作的基本流程做解析会员电影的网站

基于C语言的几种排序方法比较.doc基于C语言的几种排序方法比较 【摘要】文章对c语言中的冒泡排序法、选择排序法、插入排序法进行比较讨论,以试图找出最佳排序方法。 【关键词】c语言;排序方法;比较 引言 排序是计算机程序设计中的一种重要操作,其作用是…

怎么做网站的外部连接制作网页时一般需要兼容哪些浏览器

目录 1.核心术语:2.强关联规则:小结: 1.核心术语: 支持度(Support):指项集出现的频繁程度(相当于项集出现的概率) 最小支持度有绝对值和占比两种表示方式 置信度&#…

萧山建设局网站首页做网站维护需要学什么

【机械视觉】C#VisionPro联合编程———【六、visionPro连接工业相机设备】 目录 【机械视觉】C#VisionPro联合编程———【六、visionPro连接工业相机设备】 前言: 连接步骤说明 一. 硬件连接 支持的相机接口类型: 连接步骤 2. 软件配置 Visio…

建设个人博客网站制作沈阳高端网页

HTTP(Hypertext Transfer Protocol,超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。这个简单模型是早期Web成功的有功之臣,因为它…

opencart做视频网站群晖中使用wordpress

.Net FrameWork总结 介绍.Net公共语言运行库CLI的组成.NET Framework的主要组成.NET Framework的优点CLR在运行期管理程序的执行,包括以下内容CLR提供的服务FCL的组成 或 服务(这个其实就是我们编码时常用到的类库):(下…

前端做学校网站教务做网站运营工作有前景吗

每一个行业的从业人员都会有变老的那一刻,难道变老了之后还要继续从事之前的工作吗?估计没人愿意,除非是体力上吃得消的。接下来所讲述的就是作为程序员的码农们该如何迎接慢慢变老之后的工作转变!人们都会期望随着岁数的增加&…

seo sem 做网站佛山关键词排名效果

本篇文章详细教你如何使用 Apifox 的 IDEA 插件实现自动生成接口代码。好处简单总结有以下几点: 自动生成接口文档: 不用手写,一键点击就可以自动 生成文档,当有更新时,点击一下就可以自动同步接口文档;代…

购物网站的策划免费做网站推广的软件

和 DISCUZ 不同,DISCUZ 可以允许分类下面还有分类,再继续分类这种嵌套式分类。 Discourse 最多只允许有 2 个分类。 如果你在已有的分类下再继续分类的话,系统会提示错误: 意思就是子分类不能再分子分类。 Discourse 尽量采取了…