Golang Go语言中这段 PHP 代码如何实现?
Golang Go语言中这段 PHP 代码如何实现?
function tree(array $items)
{
$ids = [];
foreach ($items as $item)
{
if ($item[‘id’] == $item[‘pid’]) continue; //如果父 ID 等于自己,避免死循环,跳过
$ids[] = $item['id'];
$items[ ($item['pid']) ][ 'children' ][ ($item['id']) ] = &$items[ ($item['id']) ];
}
$result = Arr::except($items, $ids);
return count($result) === 1 ? Arr::get(array_pop($result), 'children', []) : $result;
}
$items = [
['id' => 0, 'name' => 'none', 'pid' => 0],
['id' => 1, 'name' => 'test', 'pid' => 0],
['id' => 2, 'name' => 'test1', 'pid' => 1],
['id' => 3, 'name' => 'test2', 'pid' => 1],
];
tree($items);
更多关于Golang Go语言中这段 PHP 代码如何实现?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
你把 Array 想成 Map[string]interface{} :逃~
更多关于Golang Go语言中这段 PHP 代码如何实现?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
用 map ,后面还要涉及到排序,挺难搞的。
生成 tree 结构,不一样写吗
不复杂呀,慢慢琢磨琢磨~
简单的就用 map ,不想用 map 就自己定义一个 struct
树啊,结构体
php kv 对是保序的吗?
那样的话可以考虑一下 struct {key string; value interface{}}[] (逃
这种序列化分类的功能,应该挺常见的吧,不会写的话,自己网上搜一下吧。
golang 真是表达力很弱的语言,不适合拿来做业务开发
自己写了一个,可以参考: https://github.com/coscms/tree
在将PHP代码转换为Go语言时,需要注意两者在语法、数据类型、标准库等方面的差异。虽然PHP和Go都是强类型语言,但它们的处理方式有所不同。以下是一个通用的转换思路,假设PHP代码是简单的数据处理逻辑:
示例PHP代码
<?php
$a = 10;
$b = 20;
$sum = $a + $b;
echo "The sum is: " . $sum;
?>
对应的Go语言实现
package main
import (
"fmt"
)
func main() {
var a int = 10
var b int = 20
sum := a + b
fmt.Printf("The sum is: %d\n", sum)
}
转换要点
- 变量声明:Go语言中变量需要显式声明类型,而PHP则通过赋值自动推断。
- 字符串拼接:PHP使用
.
进行字符串拼接,Go语言使用+
(对于字符串类型)。 - 输出:PHP使用
echo
,Go语言使用fmt.Printf
或fmt.Println
进行格式化输出。 - 包管理:Go语言使用包(package)来组织代码,而PHP通常通过文件或类来组织。
请注意,具体的转换细节会根据PHP代码的具体逻辑和复杂度有所不同。在实际转换过程中,可能需要处理更多数据类型、函数、控制结构等。对于更复杂的PHP代码,建议逐步分解并逐一转换为Go语言代码。