defer 可以被称为「推迟执行」,实际上就是在函式结束后会「反序」执行的东西,例如你按照了这样的顺序定义 defer : A-B-C-D,那么执行的顺序其实会是 D-C-B-A ,这用在程式结束时还蛮有用的,让我们看看Golang如何改善上述范例 。
这东西很邪恶 , 不是吗?又不是在写BASIC,不过也许有时候你会在PHP 用上呢 。但是拜托,不要 。
Golang中仅有 for 一种回圈但却能够达成 foreach 、 while 、 for 多种用法 。普通 for 回圈写法在两个语言中都十分相近 。
在Golang请记得:如果你的 i 先前并不存在,那么你就需要定义它,所以下面这个范例你会看见 i := 0。
在PHP里,foreach() 能够直接给你值和键名,用起来十分简单 。
Golang里面虽然仅有 for() 但却可以使用 range 达成和PHP一样的 foreach 方式 。
一个 while(条件) 回圈在PHP里面可以不断地执行区块中的程式,直到 条件 为 false 为止 。
在Golang里也有相同的做法,但仍是透过 for 回圈,请注意这个 for 回圈并没有任何的分号( ; ),而且一个没有条件的 for 回圈会一直被执行 。
PHP中有 do .. while() 回圈可以先做区块中的动作 。
在Golang中则没有相关函式,但是你可以透过一个无止尽的 for 回圈加上条件式来让他结束回圈 。
要是你真的希望完全符合像是PHP那样的设计方式 , 或者你可以在Golang中使用很邪恶的 goto。
在PHP中我们可以透过 date() 像这样取得目前的日期 。
在Golang就稍微有趣点了,因为Golang中并不是以 Y-m-d 这种格式做为定义,而是 1 、 2 、 3 , 这令你需要去翻阅文件,才能够知道 1 的定义是代表什么 。
俗话说:「爆炸就是艺术」,可爱的PHP用词真的很大胆,像是: explode() (爆炸)、 die() (死掉),回归正传,如果你想在PHP里面将字串切割成阵列 , 你可以这么做 。
简单的就让一个字串给「爆炸」了 , 那么Golang 呢?
对了,记得引用 strings 套件 。
这真的是很常用到的功能,就像物件一样有着键名和键值,在PHP 里面你很简单的就能靠阵列(Array)办到 。
真是太棒了,那么Golang呢?用 map 是差不多啦 。如果有必要的话 , 你可以稍微复习一下先前提到的「多资料储存型态-Stores」 。
你很常会在PHP里面用 isset() 检查一个索引是否存在,不是吗?
在Golang里面很简单的能够这样办到(仅适用于 map ) 。
指针(有时也做参照)是一个像是「变数别名」的方法,这种方法让你不用整天覆盖旧的变数 , 让我们假设 A = 1; B = A; 这个时候 B 会复制一份 A 且两者不相干,倘若你希望修改 B 的时候实际上也会修改到 A 的值,就会需要指针 。
指针比起复制一个变数,他会建立一个指向到某个变数的记忆体位置,这也就是为什么你改变指针,实际上是在改变某个变数 。
在Golang你需要用上 * 还有符号 。
有些时候你会回传一个阵列,这个阵列里面可能有资料还有错误代号,而你会用条件式判断错误代号是否非空值 。
在Golang中函式可以一次回传多个值 。为此 , 你不需要真的回传一个阵列,不过要注意的是你将会回传一个属于 error 资料型态的错误 , 所以你需要引用 errors 套件来帮助你做这件事 。
该注意的是Golang没有 try .. catch,因为 Golang推荐这种错误处理方式 ,你应该在每一次执行可能会发生错误的程式时就处理错误,而非后来用 try 到处包覆你的程式 。
在 if 条件式里宣告变数会让你只能在 if 内部使用这个变数,而不会污染到全域范围 。
推荐阅读
- oracle临时表使用情况,oracle临时表怎么使用
- 电脑虚拟内存有什么用,虚拟内存对游戏有用吗
- 1944射击游戏视频大全,1944射击游戏视频大全
- 模拟飞行配角游戏,模拟 飞行
- mysql删库了怎么办 mysql数据库删了能找回么
- 鸿蒙os2.0支持魅族魅m6吗,魅族搭载鸿蒙os
- 地产如何提升品牌形象营销,地产如何提升品牌形象营销策略
- 免费服务器国外软件推荐,免费服务器国外软件推荐知乎
- php数据库导出word php数据库导出文件夹形式