Update supported go versions

Client: go

With the release of go 1.23, update supported go versions to 1.22+1.23
according to our go support policy.

Also update the code to use the new range loop feature introduced in go
1.22 when appropriate.

Also fix a bug in TSSLServerSocket.Addr that it does not return the
listener address.
diff --git a/lib/go/test/tests/equals_test.go b/lib/go/test/tests/equals_test.go
index b8adc77..f56d0cb 100644
--- a/lib/go/test/tests/equals_test.go
+++ b/lib/go/test/tests/equals_test.go
@@ -255,7 +255,7 @@
 
 func genInt64Slice(length int) []int64 {
 	ret := make([]int64, length)
-	for i := 0; i < length; i++ {
+	for i := range ret {
 		ret[i] = int64(length - i)
 	}
 	return ret
@@ -263,7 +263,7 @@
 
 func genStringSlice(length int) []string {
 	ret := make([]string, length)
-	for i := 0; i < length; i++ {
+	for i := range ret {
 		ret[i] = strconv.Itoa(length - i)
 	}
 	return ret
@@ -271,7 +271,7 @@
 
 func genBytesSlice(length int) [][]byte {
 	ret := make([][]byte, length)
-	for i := 0; i < length; i++ {
+	for i := range ret {
 		ret[i] = []byte(strconv.Itoa(length - i))
 	}
 	return ret
@@ -279,7 +279,7 @@
 
 func genInt64StringMap(length int) map[int64]string {
 	ret := make(map[int64]string, length)
-	for i := 0; i < length; i++ {
+	for i := range length {
 		ret[int64(i)] = strconv.Itoa(i)
 	}
 	return ret
diff --git a/lib/go/test/tests/string_parse_allocation_test.go b/lib/go/test/tests/string_parse_allocation_test.go
index 12790c4..56163b7 100644
--- a/lib/go/test/tests/string_parse_allocation_test.go
+++ b/lib/go/test/tests/string_parse_allocation_test.go
@@ -42,7 +42,7 @@
 	b.StopTimer()
 	numEscapedQuotes := 1000
 	var sb strings.Builder
-	for i := 0; i < numEscapedQuotes; i++ {
+	for range numEscapedQuotes {
 		sb.WriteString(`\"`)
 	}
 
@@ -51,7 +51,7 @@
 	transport := thrift.NewTMemoryBuffer()
 	p := thrift.NewTJSONProtocol(transport)
 
-	for i := 0; i < b.N; i++ {
+	for range b.N {
 		transport.Reset()
 		transport.WriteString(testString)
 		transport.Flush(context.Background())
diff --git a/lib/go/test/tests/validate_test.go b/lib/go/test/tests/validate_test.go
index 957a8df..52e059a 100644
--- a/lib/go/test/tests/validate_test.go
+++ b/lib/go/test/tests/validate_test.go
@@ -107,7 +107,7 @@
 	}
 	bt = validatetest.NewBasicTest()
 	bt.Map1 = make(map[string]string)
-	for i := 0; i < 11; i++ {
+	for i := range 11 {
 		bt.Map1[strconv.Itoa(i)] = strconv.Itoa(i)
 	}
 	if err := bt.Validate(); err == nil {
@@ -149,7 +149,7 @@
 		t.Errorf("Error cannot be unwrapped into *ValidationError: %v", err)
 	}
 	bt = validatetest.NewBasicTest()
-	for i := 0; i < 11; i++ {
+	for range 11 {
 		bt.Set1 = append(bt.Set1, "0")
 	}
 	if err := bt.Validate(); err == nil {
@@ -272,7 +272,7 @@
 	frt = validatetest.NewFieldReferenceTest()
 	frt.MaxSize = 8
 	frt.Map0 = make(map[string]string)
-	for i := 0; i < 9; i++ {
+	for i := range 9 {
 		frt.Map0[strconv.Itoa(i)] = strconv.Itoa(i)
 	}
 	if err := frt.Validate(); err == nil {
@@ -289,7 +289,7 @@
 	}
 	frt = validatetest.NewFieldReferenceTest()
 	frt.MaxSize = 8
-	for i := 0; i < 9; i++ {
+	for range 9 {
 		frt.List0 = append(frt.List0, "0")
 	}
 	if err := frt.Validate(); err == nil {
@@ -306,7 +306,7 @@
 	}
 	frt = validatetest.NewFieldReferenceTest()
 	frt.MaxSize = 8
-	for i := 0; i < 9; i++ {
+	for range 9 {
 		frt.Set0 = append(frt.Set0, "0")
 	}
 	if err := frt.Validate(); err == nil {