為 PHP 轉 Go 的朋友們推薦一款神器
了解 PHP 的朋友應該會被 PHP 中兩大特性折服:1、強大的 array;2、強大的函數(shù)庫。大部分數(shù)據(jù)用一個 array 即可表示;同樣大部分功能用一個函數(shù)即可搞定。比如計算一個字符串的 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 中的函數(shù)是如此強大、便利,所以 PHPer 轉到 Go 語言來,發(fā)現(xiàn)很多都需要自己封裝,著實不方便。也正因為如此,GitHub 也有很多類似的庫,專門提供和 PHP 類似的 Go 函數(shù)。
今天給大家推薦一個網(wǎng)站,專門為從 PHP 轉 Go 的同學們準備的,網(wǎng)站地址:https://www.php2golang.com/。

在搜索框輸入 PHP 的函數(shù)、類或庫名,為你推薦相應的 Go 代碼。比如搜索 md5,出現(xiàn)了兩個結果:
function.md5-file function.md5
點擊 function.md5 查看具體信息:

還可以直接到 Go playground 去運行看看,是不是很方便!在 https://hao.studygolang.com/ 中發(fā)現(xiàn)了該網(wǎng)站。
文末「閱讀原文」可直達項目首頁。
今天的項目大家覺得怎么樣嗎?如果你喜歡,請在文章底部留言、點贊或關注轉發(fā),你的支持就是我持續(xù)更新的最大動力!
推薦閱讀
轉角遇到GitHub - 送給愛開源的你
Git ·?GitHub · GitLab · Gitee
評論
圖片
表情
