了解 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 查看具体信息: