个人技术分享

  • 首页
  • 关于
  • 主题
  • 影视解析
  • 音乐
  • 归档
  • 留言
个人技术分享
  • 首页
  • 关于
  • 主题
  • 影视解析
  • 音乐
  • 归档
  • 留言
个人技术分享
刷新页面会随机【个人信息流样式】
28文章    103获赞    231评论    7.7万+浏览
世界那么大,我想去看看。但钱包那么小,哪也去不了。所以,珍惜当下,享受生活。
30岁 IP: 杭州 家里蹲大学
  • 首页
  • 关于
  • 主题
  • 影视解析
  • 音乐
  • 归档
  • 留言
hanhanjun888@163.com

个人技术分享

PHP 转到 Go

Warning: Undefined array key 1 in /www/wwwroot/hankin.cn/wp-content/themes/hankin/inc/wx-excerpt.php on line 53
从 PHP 转到 Go 的朋友,常常会因为没有便捷的工具函数而感到苦恼。PHP 写的多了就会形成路径依赖,在写 Go 的时候时不时就会想到 PHP 强大的数组函数。当然写 Go 的 PHPer 也想拥有这么强大的工具函数,在这个开源的编程世界总有一些伟大的程序员做着贡献,正是有了他们的存在,因此便有了 lancet 这样一个强大的 Go 语言工具函数库,下面我介绍一些常用的工具函数「文末附上了手册地址」。 ContainChinese 验证字符串是否包含中文字符。
import (
    "fmt"
    "github.com/duke-git/lancet/v2/validator"
)

func main() {
    result1 := validator.ContainChinese("你好")
    result2 := validator.ContainChinese("你好hello")
    result3 := validator.ContainChinese("hello")

    fmt.Println(result1)
    fmt.Println(result2)
    fmt.Println(result3)

    // Output:
    // true
    // true
    // false
}
IsChineseMobile 验证字符串是否是中国手机号码。
import (
    "fmt"
    "github.com/duke-git/lancet/v2/validator"
)

func main() {
    result1 := validator.IsChineseMobile("13263527980")
    result2 := validator.IsChineseMobile("434324324")

    fmt.Println(result1)
    fmt.Println(result2)

    // Output:
    // true
    // false
}
IsChineseIdNum 验证字符串是否是中国身份证号码。
import (
    "fmt"
    "github.com/duke-git/lancet/v2/validator"
)

func main() {
    result1 := validator.IsChineseIdNum("210911192105130715")
    result2 := validator.IsChineseIdNum("123456")

    fmt.Println(result1)
    fmt.Println(result2)

    // Output:
    // true
    // false
}
IsChinesePhone 验证字符串是否是中国电话座机号码。
import (
    "fmt"
    "github.com/duke-git/lancet/v2/validator"
)

func main() {
    result1 := validator.IsChinesePhone("010-32116675")
    result2 := validator.IsChinesePhone("123-87562")

    fmt.Println(result1)
    fmt.Println(result2)

    // Output:
    // true
    // false
}
IsCreditCard 验证字符串是否是信用卡号码。
import (
    "fmt"
    "github.com/duke-git/lancet/v2/validator"
)

func main() {
    result1 := validator.IsCreditCard("4111111111111111")
    result2 := validator.IsCreditCard("123456")

    fmt.Println(result1)
    fmt.Println(result2)

    // Output:
    // true
    // false
}
IsEmail 验证字符串是否是有效电子邮件地址。

import ( "fmt" "github.com/duke-git/lancet/v2/validator" ) func main() { result1 := validator.IsEmail("abc@xyz.com") result2 := validator.IsEmail("a.b@@com") fmt.Println(result1) fmt.Println(result2) // Output: // true // false }
Contain 判断 slice 是否包含 value。
import (
    "fmt"
    "github.com/duke-git/lancet/v2/slice"
)

func main() {
    result1 := slice.Contain([]string{"a", "b", "c"}, "a")
    result2 := slice.Contain([]int{1, 2, 3}, 4)

    fmt.Println(result1)
    fmt.Println(result2)

    // Output:
    // true
    // false
}
Chunk 按照 size 参数均分 slice。
import (
    "fmt"
    "github.com/duke-git/lancet/v2/slice"
)

func main() {
    arr := []string{"a", "b", "c", "d", "e"}

    result1 := slice.Chunk(arr, 1)
    result2 := slice.Chunk(arr, 2)

    fmt.Println(result1)
    fmt.Println(result2)

    // Output:
    // [[a] [b] [c] [d] [e]]
    // [[a b] [c d] [e]]
}
Equal 检查两个切片是否相等,相等条件:切片长度相同,元素顺序和值都相同。
import (
    "fmt"
    "github.com/duke-git/lancet/v2/slice"
)

func main() {
    s1 := []int{1, 2, 3}
    s2 := []int{1, 2, 3}
    s3 := []int{1, 3, 2}

    result1 := slice.Equal(s1, s2)
    result2 := slice.Equal(s1, s3)

    fmt.Println(result1)
    fmt.Println(result2)

    // Output:
    // true
    // false
}
Comma 用逗号每隔3位分割数字/字符串,支持前缀添加符号。参数 value 必须是数字或者可以转为数字的字符串, 否则返回空字符串。
package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/formatter"
)

func main() {
    result1 := formatter.Comma("123", "")
    result2 := formatter.Comma("12345", "$")
    result3 := formatter.Comma(1234567, "¥")

    fmt.Println(result1)
    fmt.Println(result2)
    fmt.Println(result3)

    // Output:
    // 123
    // $12,345
    // ¥1,234,567
}
ForEach 对 map 中的每对 key和 value 执行 iteratee 函数。
package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/maputil"
)

func main() {
    m := map[string]int{
        "a": 1,
        "b": 2,
        "c": 3,
        "d": 4,
    }

    var sum int

    maputil.ForEach(m, func(_ string, value int) {
        sum += value
    })

    fmt.Println(sum)

    // Output:
    // 10
}
Keys 返回 map 中所有 key 的切片。
package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/maputil"
)

func main() {
    m := map[int]string{
        1: "a",
        2: "a",
        3: "b",
        4: "c",
        5: "d",
    }

    keys := maputil.Keys(m)
    sort.Ints(keys)

    fmt.Println(keys)

    // Output:
    // [1 2 3 4 5]
}
Merge 合并多个 maps 相同的 key 会被后来的 key 覆盖。
package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/maputil"
)

func main() {
    m1 := map[int]string{
        1: "a",
        2: "b",
    }
    m2 := map[int]string{
        1: "1",
        3: "2",
    }

    result := maputil.Merge(m1, m2)

    fmt.Println(result)

    // Output:
    // map[1:c 2:b 3:d]
}
RandInt 生成随机int, 范围[min, max)。
package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/random"
)

func main() {
    rInt := random.RandInt(1, 10)
    fmt.Println(rInt)
}
RandString 生成给定长度的随机字符串,只包含字母(a-zA-Z)。
package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/random"
)

func main() {
    randStr := random.RandString(6)
    fmt.Println(randStr) //pGWsze
}
以上这些只是部分的工具函数,如果想查看所有内容可以访问 https://www.golancet.cn/ 该网站。 再强大的函数工具库也不可能涵盖所有的场景,随着现在 AI 的盛行,AI 的编程辅助工具也应运而生。在这里我再分享一个免费的 PHP 代码直接转换 Go 代码工具,这个工具简直是 PHP 程序员的福音,直接将 PHP 代码贴上便自动生成了 Go 代码。 1 最后附上这个 AI 工具的地址 https://www.codeconvert.ai/php-to-golang-converter 赶快去使用吧。
1年前 1,213浏览 0
赞 评论
评论(0)

暂无数据

取消回复

个人技术分享
刷新页面会随机【个人信息流样式】
28文章    103获赞    231评论    7.7万+浏览
世界那么大,我想去看看。但钱包那么小,哪也去不了。所以,珍惜当下,享受生活。
30岁 IP: 杭州 家里蹲大学
  • 首页
  • 关于
  • 主题
  • 影视解析
  • 音乐
  • 归档
  • 留言
  • 解决移动设备上的所有浏览器顶部都有地址栏,导致高度问题1年前
  • wordpress 对数据库的操作 $wpdb2年前
  • js 引入vconsole1年前
  • fastadmin appendfieldlist 用法1年前
  • 一款wordpress主题 hankin3年前

免费开源主题:smarty_hankin v2.0重构版

wordpress版本:6.0+

PHP版本:7.0~8.0

gitee源码仓库地址:点击打开

github源码仓库地址:点击打开

最新源码地址:待更新

加QQ群入口:1018842166

WP开源主题 smarty_hankin

hankin 扫码关注公众号

最近评论


    Warning: Trying to access array offset on value of type null in /www/wwwroot/hankin.cn/wp-content/themes/hankin/inc/widget/widget-comments.php on line 32

    Warning: Trying to access array offset on value of type null in /www/wwwroot/hankin.cn/wp-content/themes/hankin/inc/widget/widget-comments.php on line 32
  • […] 平台主题名称介绍价格地址WPpix综合性最好的主题298DemoWPpink完成度高朋友圈499DemoWPhankin还在完善的主题noDemoTypicefox完成度高FreeDemoTypListen完成度高FreeDemoTypNabo小鸟风格FreeDemoTypzyyo三栏自适应现代时尚FreeDemoTypFlip仿pix主题noDemoTyppengyou单栏主题noDemoTypfriends单栏主题noDemoTyplan tyLAN程序TY版本39DemoHalopixpix授权移植主题169DemoZblogpyq单栏朋友圈noDemoZblogMoments轻社交朋友圈298DemoHugomoments单栏朋友圈noDemo程序lan程序有朋友圈外观99DemoDiscuz! 朋友圈式手机版Discuz!的纯手机版朋友圈98Demo […] 抠脚大汉的摆烂人生 发布于1年前

  • Warning: Trying to access array offset on value of type null in /www/wwwroot/hankin.cn/wp-content/themes/hankin/inc/widget/widget-comments.php on line 32

    Warning: Trying to access array offset on value of type null in /www/wwwroot/hankin.cn/wp-content/themes/hankin/inc/widget/widget-comments.php on line 32
  • […] Demo […] YanZi-朋友圈 发布于1年前
  • 请问一下,同款主题在哪里授权、下载?   发布于1年前
  • 真不错👍 唤( . )醒 发布于2年前
  • 确实挺不错的 断舍离 发布于2年前

扫码加QQ群:1018842166

微信打赏

支付宝打赏

友情链接: coder gzh DIYgod kam mango pix主题 wordpress 大学 wp2 主题喵 主题猫 元气秋刀鱼 创造狮 吾柯 大海看看 守望轩-宁静雅致的小轩馆 腾讯设计导航 若志奕鑫 风信子博客

hankin Powered by WordPress 浙ICP备20002401号-1