为 PHP 转 Go 的朋友们推荐一款神器

了解 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 的朋友们推荐一款神器

在搜索框输入 PHP 的函数、类或库名,为你推荐相应的 Go 代码。比如搜索 md5,出现了两个结果:

  • function.md5-file
  • function.md5

点击 function.md5 查看具体信息:

为 PHP 转 Go 的朋友们推荐一款神器

还可以直接到 Go playground 去运行看看,是不是很方便!在 StudyGolang 中发现了该网站。

内容来源:微信公众号【Go语言中文网

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 3年前 自动加精
讨论数量: 26

强,无敌,测试了下真屌这个站!赞!

3年前 评论

这个有点意思哈。感谢分享。

3年前 评论

这个可以,收藏了

3年前 评论

Php2Golang 为啥我打不开这个网站 需要梯紫吗?

3年前 评论
面试权威指南 (作者) 3年前

这也太有针对性了吧

3年前 评论

很 nice

3年前 评论

发现除了MD5外好多函数都是没的

3年前 评论
fzpying (楼主) 3年前

666

2年前 评论
KayuHo

6666666

2年前 评论

流弊流弊

2年前 评论

确实很有用

1年前 评论

尤其是碰到一些跟php 同学联调的时候

1年前 评论

这个网站的确有点意思,嗯~ 是我受php2python(现在已经没有了)启发而开发的。 发展到目前为止,也就200个函数不到的样子,网站18年上线的时候,其实github里并没有那么多聚合函数包,不过现在随便搜索一下就有一堆了,感谢大家的支持推荐~

8个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!