日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

詳解Go與PHP的語法對比

瀏覽:25日期:2022-09-07 09:29:47
目錄概述數據類型變量類型轉換數組Maps對象類型函數控制語句If-ElseSwitchFor 循環While 循環Foreach/Range概述

Go 是由 Google 設計的一門靜態類型的編譯型語言。它有點類似于 C,但是它包含了更多的優點,比如垃圾回收、內存安全、結構類型和并發性。它的并發機制使多核和網絡機器能夠發揮最大的作用。這是 GoLang 的最佳賣點之一。此外,Go 速度快,表現力強,干凈且高效。這也是 Go 如此吸引開發者學習的原因。

PHP 是一種動態類型語言,它使新手更容易編寫代碼。現在的問題是,PHP 開發人員能否從動態類型語言切換到像 Go 這樣的靜態類型語言?為了找到答案,讓我們對比一下 Go 和 PHP 之間的語法差異。

數據類型

Go 同時支持有符號和無符號整數,而 PHP 只支持有符號整數。

另一個主要區別是數組。Go 對 array 和 map 有單獨的類型,而 PHP 數組實際上是有序的 map。

Go 與 PHP 相比沒有對象。但是,Go 有一個類似于object的struct類型。

PHP 數據類型:

boolean

string

integer // Signed integer, PHP does not support unsigned integers.

float (also known as 'floats', 'doubles', or 'real numbers')

array

object

null

resource

Go 數據類型:

string

bool

int  int8  int16  int32  int64 // Signed integer

uint uint8 uint16 uint32 uint64 uintptr // Unsigned integers

byte // alias for uint8

rune // alias for int32

float32 float64

complex64 complex128

array

slices

map

struct

變量

Go 使用var聲明全局變量和函數變量。但是,它也支持帶有初始化程序的簡寫語法,但只能在函數內部使用。另一方面,PHP 僅支持帶有初始化程序的變量聲明。

// 變量聲明

// Go               // PHP

var i int           $i = 0      // integer

var f float64       $f = 0.0    // float

var b bool          $b = false  // boolean

var s string        $s = ''     // string

var a [2]string     $a = []     // array

// 簡短的變量聲明

// Go                      // PHP

i := 0                     $i = 0      // integer

f := 0.0                   $f = 0.0    // float

b := false                 $b = false  // boolean

s := ''                    $s = ''     // string

a := [1]string{'hello'}    $a = []     // array

類型轉換

// Go

i := 42             // Signed integer

f := float64(i)     // Float

u := uint(f)        // Unsigned integer

// PHP

$i = 1;

$f = (float) $i;    // 1.0

$b = (bool) $f      // true

$s = (string) $b    // '1'

數組

// Go

var a [2]string

a[0] = 'Hello'

a[1] = 'World'

// OR

a := [2]string{'hello', 'world'}

// PHP

$a = [

    'hello',

    'world'

];

Maps

// Go

m := map[string]string{

    'first_name': 'Foo',

    'last_name': 'Bar',

}

// PHP

$m = [

    'first_name' => 'Foo',

    'last_name' => 'Bar'

];

對象類型

Go 不支持對象。但是,您可以使用structs實現object之類的語法。

// Gopackage mainimport 'fmt'type Person struct { Name string Address string}func main() { person := Person{'Foo bar', 'Sydney, Australia'} fmt.Println(person.Name)}

// PHP$person = new stdClass;$person->Name = 'Foo bar';$person->Address = 'Sydney, Australia';echo $person->Name;// 或使用類型轉換$person = (object) [ ’Name’ => 'Foo bar', ’Address’ => 'Sydney, Australia'];echo $person->Name;函數

Go 和 PHP 函數之間的主要區別是; Go 函數可以返回任意數量的結果,而 PHP 函數只能返回一個結果。但是,PHP 可以通過返回數組來模擬相同的功能。

// Gopackage mainimport 'fmt'func fullname(firstName string, lastName string) (string) { return firstName + ' ' + lastName}func main() { name := fullname('Foo', 'Bar') fmt.Println(name)}

// 返回多個結果// Gopackage mainimport 'fmt'func swap(x, y string) (string, string) { return y, x}func main() { a, b := swap('hello', 'world') fmt.Println(a, b)}

// PHPfunction fullname(string $firstName, string $lastName) : string { return $firstName . ' ' . $lastName;}$name = fullname('Foo', 'Bar');echo $name;

// PHP// 返回一個數組以獲得多個結果function swap(string $x, string $y): array { return [$y, $x];}[$a, $b] = swap(’hello’, ’world’);echo $a, $b;控制語句If-Else

// Gopackage mainimport ( 'fmt')func compare(a int, b int) { if a > b {fmt.Println('a is bigger than b') } else {fmt.Println('a is NOT greater than b') }}func main() { compare(12, 10);}

// PHPfunction compare(int $a, int $b) { if ($a > $b) {echo 'a is bigger than b'; } else {echo 'a is NOT greater than b'; }}compare(12, 10);Switch

根據 Golang 官方教程文檔:

Go 的 switch 與 C,C+,Java,JavaScript 和 PHP 中的類似,除了 Go 只運行選中的 case,而不是隨后的所有 case。 實際上,break語句在這些語言中的每個 case 后都是必需的,而在 Go 中則是自動補充的。另一個重要的區別是 Go 的 switch cases 不需要是常量,并且涉及的值也不必是整數。

// Gopackage mainimport ( 'fmt' 'runtime')func main() { fmt.Print('Go runs on ') os := runtime.GOOS; switch os { case 'darwin':fmt.Println('OS X.') case 'linux':fmt.Println('Linux.') default:fmt.Printf('%s.n', os) }}

// PHPecho 'PHP runs on ';switch (PHP_OS) { case 'darwin':echo 'OS X.';break; case 'linux':echo 'Linux.';break; default:echo PHP_OS;}For 循環

// Gopackage mainimport 'fmt'func main() { sum := 0 for i := 0; i < 10; i++ {sum += i } fmt.Println(sum)}

// PHP$sum = 0;for ($i = 0; $i < 10; $i++) { $sum += $i;}echo $sum;While 循環

Go 自身沒有 while 循環的語法。相應的,Go 使用for循環代替實現 while 循環.

// Gopackage mainimport 'fmt'func main() { sum := 1 for sum < 100 {sum += sum } fmt.Println(sum)}

// PHP$sum = 1;while ($sum < 100) { $sum += $sum;}echo $sum;Foreach/Range

PHP 使用foreach迭代數組和對象。與之對應,Go 使用range迭代 slice 或 map。

/ Gopackage mainimport 'fmt'func main() { colours := []string{'Maroon', 'Red', 'Green', 'Blue'} for index, colour := range colours {fmt.Printf('index: %d, colour: %sn', index, colour) }}

// PHP$colours = ['Maroon', 'Red', 'Green', 'Blue'];foreach($colours as $index => $colour) { echo 'index: {$index}, colour: {$colour}n';}

以上就是詳解Go與PHP的語法對比的詳細內容,更多關于Go與PHP的語法對比的資料請關注好吧啦網其它相關文章!

標簽: PHP
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久精品国产亚洲夜色av网站| 亚洲1234区| 久久国产日韩欧美精品| 99久久久久国产精品| 欧美va天堂在线| 久久久国产精品一区二区中文| 亚洲精品国产偷自在线观看| 亚洲黄页一区| 国产精品www.| 精品久久久久中文字幕小说| 亚洲精品婷婷| 婷婷成人在线| 麻豆精品视频在线| 四虎精品永久免费| 国产一区二区三区四区| 五月天综合网站| 欧美日韩一区二区国产| 在线亚洲国产精品网站| 亚洲在线一区| 精品一区免费| 99pao成人国产永久免费视频| 中文字幕日韩高清在线| 麻豆精品视频在线观看免费| 欧美日韩黑人| 在线亚洲自拍| 日韩三级久久| 人人爽香蕉精品| 日本欧洲一区二区| 香蕉国产精品| 亚洲精品一区二区在线看| 成人国产综合| 亚洲美洲欧洲综合国产一区| 免费在线观看视频一区| 亚洲高清影视| 日韩国产欧美视频| 亚洲伦乱视频| 精品丝袜在线| 开心激情综合| 久久电影一区| 日韩激情网站| 日韩激情一区二区| 91高清一区| 欧美日韩一区二区国产| 欧美在线黄色| 日韩黄色免费网站| 国产精品外国| 中文字幕在线视频网站| 国产日韩高清一区二区三区在线 | 女人天堂亚洲aⅴ在线观看| 欧美在线黄色| 亚洲婷婷丁香| 不卡视频在线| 一区二区小说| 1024精品久久久久久久久| 最新国产拍偷乱拍精品| 欧美一区免费| 香蕉成人久久| 99久久夜色精品国产亚洲1000部| 91精品二区| 在线视频观看日韩| 日韩免费一区| 国产精品嫩草99av在线| 久久性天堂网| 欧美在线首页| 蜜臀久久精品| 亚洲午夜久久| 国产精品久久久免费| аⅴ资源天堂资源库在线| 伊人久久大香线蕉av不卡| 蜜桃视频在线观看一区| 色网在线免费观看| 天堂网在线观看国产精品| 国产精品成人国产| 欧美成人精品三级网站| 欧美sm一区| 国产欧美日韩在线一区二区| 国产精品99久久久久久董美香| 国产欧美日韩影院| 亚洲精品影院在线观看| 亚洲欧美网站| 免费视频最近日韩| 亚洲有吗中文字幕| 国产精品嫩草99av在线| 久久国产精品色av免费看| 久久国内精品视频| 久久久天天操| 精品日本视频| 99精品在线观看| 97se综合| 鲁鲁在线中文| 国产中文字幕一区二区三区| 亚洲一级淫片| 国产精品久久久久久久久久妞妞| 欧美 日韩 国产一区二区在线视频| 日韩在线网址| 国产美女久久| se01亚洲视频 | 国产精品一区二区三区av麻| 国产精品羞羞答答在线观看| 久久伊人国产| 天堂va在线高清一区| 精品三级久久久| 亚洲天堂1区| 亚洲精品欧美| 国产日韩一区| 欧美亚洲tv| 亚洲在线久久| 国产欧美成人| 超碰超碰人人人人精品| 国产精品白丝一区二区三区| 国产情侣一区| 国产精品亚洲产品| 国产高清视频一区二区| 国产精品啊啊啊| 国产精品白丝av嫩草影院| 天堂精品久久久久| 欧美精品1区| 国产一区丝袜| 天堂中文在线播放| 精品国产亚洲日本| 超碰99在线| 黄毛片在线观看| 久久九九精品| 日韩欧美四区| 亚洲精品精选| 日本中文字幕不卡| 国产精品99久久免费| 国产精品99一区二区三| 日本精品影院| 另类av一区二区| 91精品福利观看| 国产精品一区三区在线观看| 蜜桃久久精品一区二区| 欧美日韩视频网站| 影院欧美亚洲| 91精品尤物| 黄色欧美在线| 亚洲四虎影院| 日韩影片在线观看| 激情不卡一区二区三区视频在线| 亚洲午夜天堂| 国产一区91| 国产精品免费99久久久| 亚洲91视频| 红桃视频亚洲| 日韩精品一区二区三区中文 | 精品中文在线| 国产伦一区二区三区| 欧美日韩国产一区精品一区| 国产视频一区二| 水蜜桃精品av一区二区| 一区二区三区四区精品视频| 麻豆国产精品777777在线| 欧美va天堂| 7777精品| 日韩成人综合| 日韩avvvv在线播放| 日韩在线第七页| 国产一区91| 日韩在线看片| 麻豆精品视频在线观看免费| 一本色道久久精品| 亚洲午夜av| 男人的天堂亚洲一区| 综合日韩av| 国产日韩中文在线中文字幕 | 日本成人中文字幕| 亚洲三级网址| 国产夫妻在线| 麻豆免费精品视频| 日本欧美大码aⅴ在线播放| 免费观看不卡av| 国产在线日韩| 色偷偷色偷偷色偷偷在线视频| 精品国产乱码久久久久久1区2匹| 国产亚洲电影| 国产欧美亚洲精品a| 亚洲色图国产| 国内不卡的一区二区三区中文字幕| 男女性色大片免费观看一区二区| 亚洲国产影院| 香蕉久久国产| 国产不卡精品| 欧美午夜不卡| 成人免费电影网址| 欧美成人精品三级网站| 91成人在线| 午夜在线一区| 日本一区二区高清不卡| 国产精品高清一区二区| 久久精品二区三区| 精品三级国产| 国产伦精品一区二区三区千人斩| 日韩免费精品| 日韩不卡一二三区| 97成人在线| 久久丁香四色| 日韩av网站在线观看| 久久国内精品| 成人午夜亚洲|