PHP To Go 轉型手記 (二)

clipboard.png

前言

做爲一名PHP程序員,我感到榮幸。但在時代不斷的變遷中,要具有足夠的知識才可生存。程序員

那就從Go語言學起把。數組

但願看到本篇文章的你能夠對Go有一個基本的認識。本系列文章與我本身學習Go語言的方式去描述。以PHP代碼與Go代碼的對比加以區分理解。app

加載

PHP學習

namespace Action
use Action

Gospa

package Action
import "action"

數組

PHPcode

// 初始化
$arr = []
$arr = array()
// 初始化賦值
$arr = [1,2,3]
// 多維數組
$arr = [][]
// 獲取值
echo $arr[1]
// 獲取數組總數
echo length($arr)
// 獲取數組區間
$a=array("red","green","blue","yellow","brown");
print_r(array_slice($a,1,2));
// 設置key=>value
$arr = ["username"=>"zhangsan","age"=>13]
// 刪除指定下標
unset($arr[0])

Go 數組 & 切片 (切片是數組的一個View,就例如MySQL的視圖同樣)blog

// 初始化
var arr [5]int
// 初始化賦值
arr := [5]int{1, 2, 3, 4, 5}
// 無需聲明數組個數
arr := [...]int{1, 2, 3, 4, 5, 6, 7}
// 多維數組
var arr [4][5]bool
// 獲取值
fmt.Println(arr[1])
// 獲取數組總數
fmt.Println(len(arr))
// 獲取數組區間 顯而易見,Go對數組的操做更便利直觀
a := [...]string{"red","green","blue","yellow","brown"}
fmt.Println(a[1:2])
// 設置key=>value 這裏須要使用Map
m := map[string]string{
    "username": "zhangsan",
    "age" : "13"
}
// 刪除指定下標 Go沒有刪除數組下標的系統方法
arr := arr[1:]
// 刪除中間位置的下標 可經過合併的方式去除指定下標
arr := append(arr[:3],arr[4:])

循環結構

PHPip

// 基本結構
for($i=0;$i<10;$i++){
    echo $i;
}
// 死循環
for($i=0;$i<10;$i++){
    echo $i;
    $i--
}
// 獲取key,value
foreach($arr as $key=>$value){
    echo $key,$value
}

Gostring

// 基本結構
for i := 0; i < 10; i++ {
    fmt.Println(i)
}
// 死循環 可見Go寫死循環很是方便
for {
    fmt.Println("")
}
// 獲取key,value
for k, v := range arr {
    fmt.Println(k, v)
}

控制結構

PHPit

// if
if(true){

}
// switch
switch(true){
    case true:
        echo true;
        break;
}

Go

// if
if true {
        
}
// switch Go語言的Switch的Case不須要break
switch true {
    case true:
        fmt.Println(true)
}

PHP

// 聲明一個類
class City{}

Go

// 聲明一個結構體 這裏並不是混淆公衆,是由於Go自己沒有類的概念,只是其聲明及操做方法與類概念類似
type City struct{}

Go語言的結構體會在下一個章節來作對比

致謝

感謝你看到這裏,但願本篇文章能夠幫到你。謝謝

相關文章
相關標籤/搜索