For example:
hash("HelloWorld") = 1234567
Is there any built-in function could do this ?
Thanks.
For example:
hash("HelloWorld") = 1234567
Is there any built-in function could do this ?
Thanks.
The hash package is helpful for this. Note it's an abstraction over specific hash implementations. Some ready made are found in the package subdirectories.
Example:
package main
import (
        "fmt"
        "hash/fnv"
)
func hash(s string) uint32 {
        h := fnv.New32a()
        h.Write([]byte(s))
        return h.Sum32()
}
func main() {
        fmt.Println(hash("HelloWorld"))
        fmt.Println(hash("HelloWorld."))
}
(Also here)
Output:
926844193
107706013
 
    
    Here is a function you could use to generate a hash number:
// FNV32a hashes using fnv32a algorithm
func FNV32a(text string) uint32 {
    algorithm := fnv.New32a()
    algorithm.Write([]byte(text))
    return algorithm.Sum32()
}
I put together a group of those utility hash functions here: https://github.com/shomali11/util
You will find FNV32, FNV32a, FNV64, FNV64a, MD5, SHA1, SHA256 and SHA512
 
    
    