As others have said, it is worth trying to reduce the program to the 
minimal version which reproduces your problem
(and then publishing it on https://go.dev/play/ ).


On Thursday, 24 November 2022 at 02:38:30 UTC kra...@skepticism.us wrote:

> You cannot mutate strings. Your code is also missing a final close-brace 
> and possibly has other problems. That your example includes commented out 
> code is also problematic. As Nikhilesh Susarla pointed out you should post 
> a link to the Go playground to avoid any ambiguity.
>
> I added the missing close-brace to your code and observed the following 
> behavior (I entered "1" at the prompt):
>
> > go run x.go                                                             
>  144.6 ms
> State where the hash counter should begin:>> 1
> panic: runtime error: invalid memory address or nil pointer dereference
> [signal SIGSEGV: segmentation violation code=0x2 addr=0x28 pc=0x102536674]
>
> This tells me there is a fundamental bug in your code having nothing to do 
> with "Problems with array slicing reliability"
>
> On Wed, Nov 23, 2022 at 1:56 PM Mucas Schlack <loji...@gmail.com> wrote:
>
>> Hello Golangers!
>> Is there anyone who can test the reliability of the following Golang 
>> slice feature? I am using an AMG64 computer with Windows 10, and Go version 
>> 0.36.0. When I use the following code, to detect and then replace a 
>> character at any given length *n* (9) in a string with an Uppercase 
>> Character. Strangely and somehow, the slice pointer will move to another 
>> position even though the code is not dynamic and has not changed. Is there 
>> anyone who can trouble shoot this code for me?
>>
>> Please remember that this is "*test*" code only, so some of it will not 
>> make any sense or work. It is only "proof of concept" code.
>>
>> The code to pay attention to is the following - from lines: 80 - 92!
>>
>> Many thanks for any help you can give!
>>
>> Mucas
>>
>> Example code:
>>
>> package main
>>
>> import(
>>     //"unicode/utf8"
>>     "math/rand"
>>     "strconv"
>>     "strings"
>>     "fmt"
>>     "time"
>>     "os"
>> )
>>
>> var alphanumerics = [62] string {
>>     
>> "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
>>     "0","1","2","3","4","5","6","7","8","9",
>>     
>> "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
>>     }
>>
>> func main(){
>>
>> var (
>>         txtflpth string = "C:\\Workspace\\Transaction Hash.txt"
>>         flNm string = "Transaction Hash.txt"
>>         CRLF string = "\n"
>>         cntstrt string
>>         AuthKey string
>>         NwStr string
>>         cstart int
>>         cntr int
>>         flEx *os.FileInfo
>>         flEx2 *os.File
>>         trfl *os.File
>>         err error
>>     ) 
>>
>>     fmt.Print("State where the hash counter should begin:>> ")
>>     fmt.Scanln(&cntstrt)
>>
>>     if cntstrt == "" || cntstrt == " " {     
>>         trfl, err = os.Create(flNm)
>>         
>>         if err != nil { panic(err); os.Exit(-1) }
>>         defer trfl.Close() 
>>
>>     } else {
>>         var flEx, err = os.Stat(txtflpth)
>>         
>>         fmt.Println(flEx.Mode().String)
>>         //fmt.Println(flEx.IsRegular())
>>         fmt.Println(flEx.IsDir())
>>         fmt.Println(flEx.Name())
>>         fmt.Println(flEx.Size())
>>         fmt.Println(flEx.Sys())
>>
>>         if err != nil { if os.IsNotExist(err) { panic(err) } }
>>         
>>         cstart, err = strconv.Atoi(cntstrt)
>>         flEx2, err := os.Open(txtflpth)
>>         defer flEx2.Close() 
>>     }
>>
>>     /*defer func(
>>         if err == trfl.Close() || err == os.IsNotExist(err)!= err { 
>> panic(err) }
>>         if err == flEx.Close() || err == os.IsNotExist(err)!= err { 
>> panic(err) }
>>     )*/
>>
>>     if cntstrt != "" && cntstrt != " " { cntr = cstart }
>>
>>     for cntr = cstart; cntr < cstart + 1000; cntr++ {
>>         NwStr = ""
>>         AuthKey = NwStr
>>
>>         for i := 0; i <= 65; i++ {
>>             time.Sleep(10 * time.Nanosecond)
>>             rand.Seed(time.Now().UnixNano()) 
>>             AuthKey = AuthKey + alphanumerics[rand.Intn(62)] //, [A - Z], 
>> [0-9])
>>         }
>>
>>         var hashRemap = [...] string {"A","U","G","D","E","X"}
>>         
>>         AuthKey = "0x" + AuthKey
>>         fmt.Println("Transaction Hash: " + strconv.Itoa(cntr) + ") " + 
>> AuthKey)
>>         //AuthKey2 := []rune(AuthKey)
>>
>>         StrPos := strings.Index(AuthKey, AuthKey[9:10])
>>         fmt.Printf("The old character %s is at string position: (%d) " + 
>> CRLF,AuthKey[9:10], StrPos)
>>         //os.Exit(1)
>>
>>         for i := 0; i < 6; i++ {
>>             switch i {
>>                 case 0: AuthKey = strings.Replace(AuthKey,AuthKey[9:10], 
>> hashRemap[0], 1); fmt.Println("Replaced! The New Transaction Hash: " + "(" 
>> + strconv.Itoa(i) + ") " + AuthKey); os.Exit(1);
>>                 case 1: AuthKey = strings.Replace(AuthKey,"", 
>> hashRemap[1], 1)
>>                 case 2: AuthKey = strings.Replace(AuthKey,"", 
>> hashRemap[3], 1) 
>>                 case 3: AuthKey = strings.Replace(AuthKey,"", 
>> hashRemap[4], 1)
>>                 case 4: AuthKey = strings.Replace(AuthKey,"", 
>> hashRemap[5], 1)
>>                 case 5: AuthKey = strings.Replace(AuthKey,"", 
>> hashRemap[5], 1)
>>             }
>>             
>>         }
>>
>>         fmt.Println("Transaction Hash: " + strconv.Itoa(cntr) + ") " + 
>> AuthKey)
>>         if trfl != nil { trfl.WriteString("Transaction Hash: " + 
>> strconv.Itoa(cntr) + ") " + AuthKey + CRLF) }
>>         if flEx != nil { flEx2.WriteString("Transaction Hash: " + 
>> strconv.Itoa(cntr) + ") " + AuthKey + CRLF) }
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "golang-nuts" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to golang-nuts...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/golang-nuts/f27c55aa-836a-453e-a013-a7b752de273bn%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/golang-nuts/f27c55aa-836a-453e-a013-a7b752de273bn%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>
>
> -- 
> Kurtis Rader
> Caretaker of the exceptional canines Junior and Hank
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/ebba3f03-a95d-480a-94b6-63225b4cb4d1n%40googlegroups.com.

Reply via email to