将字符串数组的单个元素初始化为Go lang中的另一个字符串变量

In this code, I read a text file for input (A1,B2) and Im using the split function to separate them at comma and store in strs, according to the function definition its returns a array in this case it is strs array, i want the first element in strs to be in currentSource and the second element to be in CurrentDest.I tried printing both the variables individually to check if its working,but the program exits after that and I get a error saying Panic: index out of range. Can anybody help me out..!!!

var currentSource string
var currentDest string

func main() {

    file, err := os.Open("chessin.txt")
    if err != nil {
        fmt.Println(err)
    }
    defer file.Close()
    scanner := bufio.NewScanner(file)
    for scanner.Scan() {
        strs := strings.Split(scanner.Text(), ",")

        currentSource = strs[0]
        currentDest = strs[1]
}

This works

var currentSource string
var currentDest string

func main() {

    file := "A1,B2
"
    scanner := bufio.NewScanner(strings.NewReader(file))
    for scanner.Scan() {
        strs := strings.Split(scanner.Text(), ",")

        currentSource = strs[0]
        currentDest = strs[1]

        fmt.Println(strs)
    }


}

Are you sure your file (chessin.txt) it is ok?

Playground

This code is almost the same as your code and it works correctly:

package main

import (
    "bufio"
    "fmt"
    "os"
    "strings"
)

var currentSource string
var currentDest string

func main() {

    // content of this file is (no spaces between comas, not  or
    // 
 or any other whitespace):
    //C3,F3,C4,A4,C5,A1
    file, err := os.Open("chessin.txt")
    if err != nil {
        fmt.Println(err)
    }
    defer file.Close()
    scanner := bufio.NewScanner(file)
    for scanner.Scan() {
        strs := strings.Split(scanner.Text(), ",")

        if len(strs) < 2 {
            panic(`not enough elements in the file, to proceed`)
        }

        currentSource = strs[0]
        currentDest = strs[1]

        break //(B)
    }

    if currentSource != "C3" {
        panic(`currentSource IS NOT C3`)
    }

    if currentDest != "F3" {
        panic(`currentDest is not F3`)
    }

    // if we are here, then we are good
    fmt.Println(currentSource, currentDest)
}

Just pay attention to the break statement at (B). That causes the for loop to stop, after the first and second elements of the first line - not sure; but that might be what you want.

So, if the program does not reach the (A) point, then there something wrong with chessin.txt.