I think its related to the string pointer parameter of the inx function. - probably : sr *string[1000]
Please could somebody point me in the right direction.
Thanks.
package main
import “fmt”
func main() {
theStr := “ASDSFHHTBBKLKKJHHDFGHJKHHHJHHKJKJJKJKsdkejffkjf43889934ythbnv3ouy4ti3ykfjjvwkjhfwiuiu4ui4uiyruuhfufuiwefhfwekllllllfe34t3gphrepgqhg38po3hgvnfh38t98ohgerqoi084rt3ukovpklmnfvb [gj po 5hop p6iy 904254uy 45uy 45iuuy 45uy 24u209386 34tu 09y0 5u5ty9025y 59u934tp33tgprg nbnvkoiojh1234567iklr,fcv7ytgvb rgb 98uhbrtghnoikjnrfgvyhntghbuik,rfvokmrtg9iuj5rtfychntf8cihjng vf8ihjngvfi hnb jikjgdfkjverohgvoreihjgolerkgoehvve rlkvoijinvn o4erugoerutjblkgfbkdjfnveorijgve;djvboerijvbofdn”
var (
iWork int
sWork string
iRegister2[1000] uint64
iRegister4[1000] uint64
iRegister8[1000] uint64
iRegister16[1000] uint64
iRegister32[1000] uint64
iRegister64[1000] uint64
sRegister2[1000][2] string
sRegister4[1000][4] string
sRegister8[1000][8] string
sRegister16[1000][16] string
sRegister32[1000][32] string
sRegister64[1000][64] string
iInx2 uint32
iInx4 uint32
iInx8 uint32
iInx16 uint32
iInx32 uint32
iInx64 uint32
)
iWork = 0
for iWork = 0; iWork < len(theStr); iWork = iWork + 2{
if (iWork + 2) < len(theStr){
sWork = theStr[iWork:iWork + 1]
inx(sWork, &sRegister2, &iRegister2, &iInx2)
}
if (iWork + 4) % 4 == 0 && (iWork + 4) < len(theStr){
sWork = theStr[iWork:iWork + 3]
inx(sWork, &sRegister4, &iRegister4, &iInx4)
}
if ((iWork + 8) % 8) == 0 && (iWork + 8) < len(theStr){
sWork = theStr[iWork:iWork + 7]
inx(sWork, &sRegister8, &iRegister8, &iInx8)
}
if ((iWork + 16) % 16) == 0 && (iWork + 16) < len(theStr){
sWork = theStr[iWork:iWork + 15]
inx(sWork, &sRegister16, &iRegister16, &iInx16)
}
if ((iWork + 32) % 32) == 0 && (iWork + 32) < len(theStr){
sWork = theStr[iWork:iWork + 31]
inx(sWork, &sRegister32, &iRegister32, &iInx32)
}
if ((iWork + 64) % 64) == 0 && (iWork + 64) < len(theStr){
sWork = theStr[iWork:iWork + 63]
inx(sWork, &sRegister64, &iRegister64, &iInx64)
}
}
fmt.Printf("2 char array = %d\n", iInx2)
fmt.Printf("4 char array = %d\n", iInx4)
fmt.Printf("8 char array = %d\n", iInx8)
fmt.Printf("16 char array = %d\n", iInx16)
fmt.Printf("32 char array = %d\n", iInx32)
fmt.Printf("64 char array = %d\n", iInx64)
}
func inx(s string, sr *string[1000], ir *uint64, ii *uint32) {
var i int
for i = 0; i < *ii && (*sr)[i] != s; i++ {
}
if i >= *ii {
(*sr)[i] = append((*sr)[i],s)
*ii = i
(*ir)[i]++
}
}
Im getting the following errors:
./prog.go:66:6: missing function body
./prog.go:66:30: syntax error: unexpected [, expecting comma or )
./prog.go:69:2: syntax error: non-declaration statement outside function body
Go build failed.