了解 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 的同學們準備的,網站地址:https://www.php2golang.com/。
在搜索框輸入 PHP 的函數、類或庫名,為你推薦相應的 Go 代碼。比如搜索 md5,出現了兩個結果:
點擊 function.md5 查看具體信息:
還可以直接到 Go playground 去運行看看,是不是很方便!在 https://hao.studygolang.com/ 中發現了該網站。
文末「閱讀原文」可直達項目首頁。
今天的項目大家覺得怎麼樣嗎?如果你喜歡,請在文章底部留言、點讚或關注轉發,你的支持就是我持續更新的最大動力!
推薦閱讀
轉角遇到GitHub - 送給愛開源的你
Git · GitHub · GitLab · Gitee