瞭解 PHP 的朋友應該會被 PHP 中兩大特性折服:
1、強大的 array;
2、強大的函式庫。
大部分資料用一個 array 即可表示;
同樣大部分功能用一個函式即可搞定。
比如計算一個字串的 MD5,Java 是這麼做的:
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Utils {
public static String stringToMD5(String plainText) {
byte[] secretBytes = null;
try {
secretBytes = MessageDigest.getInstance("md5").digest(
plainText.getBytes());
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("沒有這個md5演算法!");
}
String md5code = new BigInteger(1, secretBytes).toString(16);
for (int i = 0; i < 32 - md5code.length(); i++) {
md5code = "0" + md5code;
}
return md5code;
}
public static void main(String[] args) {
System.out.println(MD5Utils.stringToMD5("123456"));
}
}
Go 語言是這麼做的:
package main
import (
"crypto/md5"
"fmt"
"io"
)
func Md5(str string) string {
h := md5.New()
io.WriteString(h, str)
return fmt.Sprintf("%x", h.Sum(nil))
}
func main() {
fmt.Println(Md5("123456"))
}
而 PHP 是這麼做的:
echo md5("123456");
PHP 中的函式是如此強大、便利,所以 PHPer 轉到 Go 語言來,發現很多都需要自己封裝,著實不方便。也正因為如此,GitHub 也有很多類似的庫,專門提供和 PHP 類似的 Go 函式。
今天給大家推薦一個網站,專門為從 PHP 轉 Go 的同學們準備的,網站地址:Php2Golang
在搜尋框輸入 PHP 的函式、類或庫名,為你推薦相應的 Go 程式碼。比如搜尋 md5,出現了兩個結果:
- function.md5-file
- function.md5
點選 function.md5 檢視具體資訊:
還可以直接到 Go playground 去執行看看,是不是很方便!在 StudyGolang 中發現了該網站。
內容來源:微信公眾號【Go語言中文網】
本作品採用《CC 協議》,轉載必須註明作者和本文連結