import{_ as l,o as p,c as o,k as s,a,X as n}from"./chunks/framework.6e839c56.js";const k=JSON.parse('{"title":"Compare","description":"","frontmatter":{},"headers":[],"relativePath":"api/packages/compare.md","filePath":"api/packages/compare.md"}'),e={name:"api/packages/compare.md"},t=s("h1",{id:"Compare",tabindex:"-1"},[a("Compare "),s("a",{class:"header-anchor",href:"#Compare","aria-label":'Permalink to "Compare"'},"​")],-1),c=s("p",null,"compare包提供几个轻量级的类型比较函数。",-1),r=s("div",{STYLE:"page-break-after: always;"},null,-1),y=s("h2",{id:"源码-",tabindex:"-1"},[a("源码: "),s("a",{class:"header-anchor",href:"#源码-","aria-label":'Permalink to "源码:"'},"​")],-1),F=s("ul",null,[s("li",null,[s("p",null,[s("a",{href:"https://github.com/duke-git/lancet/blob/main/compare/compare.go",target:"_blank",rel:"noreferrer"},"https://github.com/duke-git/lancet/blob/main/compare/compare.go")])]),s("li",null,[s("p",null,[s("a",{href:"https://github.com/duke-git/lancet/blob/main/compare/compare_internal.go",target:"_blank",rel:"noreferrer"},"https://github.com/duke-git/lancet/blob/main/compare/compare_internal.go")])])],-1),i=s("div",{STYLE:"page-break-after: always;"},null,-1),E=n(`

用法:

go
import (
    "github.com/duke-git/lancet/v2/condition"
)
import (
    "github.com/duke-git/lancet/v2/condition"
)
`,2),A=s("div",{STYLE:"page-break-after: always;"},null,-1),u=n('

目录

',2),m=s("div",{STYLE:"page-break-after: always;"},null,-1),B=n(`

文档

Equal

检查两个值是否相等(检查类型和值)

函数签名:

go
func Equal(left, right any) bool
func Equal(left, right any) bool

示例: 运行

go
package main

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

func main() {
    result1 := compare.Equal(1, 1)
    result2 := compare.Equal("1", "1")
    result3 := compare.Equal([]int{1, 2, 3}, []int{1, 2, 3})
    result4 := compare.Equal(map[int]string{1: "a", 2: "b"}, map[int]string{1: "a", 2: "b"})

    result5 := compare.Equal(1, "1")
    result6 := compare.Equal(1, int64(1))
    result7 := compare.Equal([]int{1, 2}, []int{1, 2, 3})

    fmt.Println(result1)
    fmt.Println(result2)
    fmt.Println(result3)
    fmt.Println(result4)
    fmt.Println(result5)
    fmt.Println(result6)
    fmt.Println(result7)

    // Output:
    // true
    // true
    // true
    // true
    // false
    // false
    // false
}
package main

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

func main() {
    result1 := compare.Equal(1, 1)
    result2 := compare.Equal("1", "1")
    result3 := compare.Equal([]int{1, 2, 3}, []int{1, 2, 3})
    result4 := compare.Equal(map[int]string{1: "a", 2: "b"}, map[int]string{1: "a", 2: "b"})

    result5 := compare.Equal(1, "1")
    result6 := compare.Equal(1, int64(1))
    result7 := compare.Equal([]int{1, 2}, []int{1, 2, 3})

    fmt.Println(result1)
    fmt.Println(result2)
    fmt.Println(result3)
    fmt.Println(result4)
    fmt.Println(result5)
    fmt.Println(result6)
    fmt.Println(result7)

    // Output:
    // true
    // true
    // true
    // true
    // false
    // false
    // false
}

EqualValue

检查两个值是否相等(只检查值)

函数签名:

go
func EqualValue(left, right any) bool
func EqualValue(left, right any) bool

示例: 运行

go
package main

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

func main() {
    result1 := compare.EqualValue(1, 1)
    result2 := compare.EqualValue(int(1), int64(1))
    result3 := compare.EqualValue(1, "1")
    result4 := compare.EqualValue(1, "2")

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

    // Output:
    // true
    // true
    // true
    // false
}
package main

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

func main() {
    result1 := compare.EqualValue(1, 1)
    result2 := compare.EqualValue(int(1), int64(1))
    result3 := compare.EqualValue(1, "1")
    result4 := compare.EqualValue(1, "2")

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

    // Output:
    // true
    // true
    // true
    // false
}

LessThan

验证参数\`left\`的值是否小于参数\`right\`的值。

函数签名:

go
func LessThan(left, right any) bool
func LessThan(left, right any) bool

示例: 运行

go
package main

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

func main() {
    result1 := compare.LessThan(1, 2)
    result2 := compare.LessThan(1.1, 2.2)
    result3 := compare.LessThan("a", "b")

    time1 := time.Now()
    time2 := time1.Add(time.Second)
    result4 := compare.LessThan(time1, time2)

    result5 := compare.LessThan(2, 1)
    result6 := compare.LessThan(1, int64(2))

    fmt.Println(result1)
    fmt.Println(result2)
    fmt.Println(result3)
    fmt.Println(result4)
    fmt.Println(result5)
    fmt.Println(result6)

    // Output:
    // true
    // true
    // true
    // true
    // false
    // false
}
package main

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

func main() {
    result1 := compare.LessThan(1, 2)
    result2 := compare.LessThan(1.1, 2.2)
    result3 := compare.LessThan("a", "b")

    time1 := time.Now()
    time2 := time1.Add(time.Second)
    result4 := compare.LessThan(time1, time2)

    result5 := compare.LessThan(2, 1)
    result6 := compare.LessThan(1, int64(2))

    fmt.Println(result1)
    fmt.Println(result2)
    fmt.Println(result3)
    fmt.Println(result4)
    fmt.Println(result5)
    fmt.Println(result6)

    // Output:
    // true
    // true
    // true
    // true
    // false
    // false
}

GreaterThan

验证参数\`left\`的值是否大于参数\`right\`的值。

函数签名:

go
func GreaterThan(left, right any) bool
func GreaterThan(left, right any) bool

示例: 运行

go
package main

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

func main() {
    result1 := compare.GreaterThan(2, 1)
    result2 := compare.GreaterThan(2.2, 1.1)
    result3 := compare.GreaterThan("b", "a")

    time1 := time.Now()
    time2 := time1.Add(time.Second)
    result4 := compare.GreaterThan(time2, time1)

    result5 := compare.GreaterThan(1, 2)
    result6 := compare.GreaterThan(int64(2), 1)
    result7 := compare.GreaterThan("b", "c")

    fmt.Println(result1)
    fmt.Println(result2)
    fmt.Println(result3)
    fmt.Println(result4)
    fmt.Println(result5)
    fmt.Println(result6)
    fmt.Println(result7)

    // Output:
    // true
    // true
    // true
    // true
    // false
    // false
    // false
}
package main

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

func main() {
    result1 := compare.GreaterThan(2, 1)
    result2 := compare.GreaterThan(2.2, 1.1)
    result3 := compare.GreaterThan("b", "a")

    time1 := time.Now()
    time2 := time1.Add(time.Second)
    result4 := compare.GreaterThan(time2, time1)

    result5 := compare.GreaterThan(1, 2)
    result6 := compare.GreaterThan(int64(2), 1)
    result7 := compare.GreaterThan("b", "c")

    fmt.Println(result1)
    fmt.Println(result2)
    fmt.Println(result3)
    fmt.Println(result4)
    fmt.Println(result5)
    fmt.Println(result6)
    fmt.Println(result7)

    // Output:
    // true
    // true
    // true
    // true
    // false
    // false
    // false
}

LessOrEqual

验证参数\`left\`的值是否小于或等于参数\`right\`的值。

函数签名:

go
func LessOrEqual(left, right any) bool
func LessOrEqual(left, right any) bool

示例: 运行

go
package main

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

func main() {
    result1 := compare.LessOrEqual(1, 1)
    result2 := compare.LessOrEqual(1.1, 2.2)
    result3 := compare.LessOrEqual("a", "b")

    time1 := time.Now()
    time2 := time1.Add(time.Second)
    result4 := compare.LessOrEqual(time1, time2)

    result5 := compare.LessOrEqual(2, 1)
    result6 := compare.LessOrEqual(1, int64(2))

    fmt.Println(result1)
    fmt.Println(result2)
    fmt.Println(result3)
    fmt.Println(result4)
    fmt.Println(result5)
    fmt.Println(result6)

    // Output:
    // true
    // true
    // true
    // true
    // false
    // false
}
package main

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

func main() {
    result1 := compare.LessOrEqual(1, 1)
    result2 := compare.LessOrEqual(1.1, 2.2)
    result3 := compare.LessOrEqual("a", "b")

    time1 := time.Now()
    time2 := time1.Add(time.Second)
    result4 := compare.LessOrEqual(time1, time2)

    result5 := compare.LessOrEqual(2, 1)
    result6 := compare.LessOrEqual(1, int64(2))

    fmt.Println(result1)
    fmt.Println(result2)
    fmt.Println(result3)
    fmt.Println(result4)
    fmt.Println(result5)
    fmt.Println(result6)

    // Output:
    // true
    // true
    // true
    // true
    // false
    // false
}

GreaterOrEqual

验证参数\`left\`的值是否大于或参数\`right\`的值。

函数签名:

go
func GreaterOrEqual(left, right any) bool
func GreaterOrEqual(left, right any) bool

示例: 运行

go
package main

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

func main() {
    result1 := compare.GreaterOrEqual(1, 1)
    result2 := compare.GreaterOrEqual(2.2, 1.1)
    result3 := compare.GreaterOrEqual("b", "b")

    time1 := time.Now()
    time2 := time1.Add(time.Second)
    result4 := compare.GreaterOrEqual(time2, time1)

    result5 := compare.GreaterOrEqual(1, 2)
    result6 := compare.GreaterOrEqual(int64(2), 1)
    result7 := compare.GreaterOrEqual("b", "c")

    fmt.Println(result1)
    fmt.Println(result2)
    fmt.Println(result3)
    fmt.Println(result4)
    fmt.Println(result5)
    fmt.Println(result6)
    fmt.Println(result7)

    // Output:
    // true
    // true
    // true
    // true
    // false
    // false
    // false
}
package main

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

func main() {
    result1 := compare.GreaterOrEqual(1, 1)
    result2 := compare.GreaterOrEqual(2.2, 1.1)
    result3 := compare.GreaterOrEqual("b", "b")

    time1 := time.Now()
    time2 := time1.Add(time.Second)
    result4 := compare.GreaterOrEqual(time2, time1)

    result5 := compare.GreaterOrEqual(1, 2)
    result6 := compare.GreaterOrEqual(int64(2), 1)
    result7 := compare.GreaterOrEqual("b", "c")

    fmt.Println(result1)
    fmt.Println(result2)
    fmt.Println(result3)
    fmt.Println(result4)
    fmt.Println(result5)
    fmt.Println(result6)
    fmt.Println(result7)

    // Output:
    // true
    // true
    // true
    // true
    // false
    // false
    // false
}

InDelta

检查增量内两个值是否相等。

函数签名:

go
func InDelta[T constraints.Integer | constraints.Float](left, right T, delta float64) bool
func InDelta[T constraints.Integer | constraints.Float](left, right T, delta float64) bool

示例: 运行

go
package main

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

func main() {
    result1 := InDelta(1, 1, 0)
    result2 := InDelta(1, 2, 0)

    result3 := InDelta(2.0/3.0, 0.66667, 0.001)
    result4 := InDelta(2.0/3.0, 0.0, 0.001)

    result5 := InDelta(float64(74.96)-float64(20.48), 54.48, 0)
    result6 := InDelta(float64(74.96)-float64(20.48), 54.48, 1e-14)

    fmt.Println(result1)
    fmt.Println(result2)
    fmt.Println(result3)
    fmt.Println(result4)
    fmt.Println(result5)
    fmt.Println(result6)

    // Output:
    // true
    // false
    // true
    // false
    // false
    // true
}
package main

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

func main() {
    result1 := InDelta(1, 1, 0)
    result2 := InDelta(1, 2, 0)

    result3 := InDelta(2.0/3.0, 0.66667, 0.001)
    result4 := InDelta(2.0/3.0, 0.0, 0.001)

    result5 := InDelta(float64(74.96)-float64(20.48), 54.48, 0)
    result6 := InDelta(float64(74.96)-float64(20.48), 54.48, 1e-14)

    fmt.Println(result1)
    fmt.Println(result2)
    fmt.Println(result3)
    fmt.Println(result4)
    fmt.Println(result5)
    fmt.Println(result6)

    // Output:
    // true
    // false
    // true
    // false
    // false
    // true
}
`,43),d=[t,c,r,y,F,i,E,A,u,m,B];function f(h,q,g,D,b,v){return p(),o("div",null,d)}const P=l(e,[["render",f]]);export{k as __pageData,P as default};