首页 > 解决方案 > 具有文件名“插入”的无效标识符字符

问题描述

我是 Go 新手并编写了一个简单的插入排序,但是当我将文件名更改为“insertion.go”时出现错误:

insert.go:2:1 处的标识符字符 U+00A0 无效

但是当我将文件名更改为其他任何内容时,它都可以正常工作:

插入.go

package main

import (
        "fmt"
        "math/rand"
        "time"
)

func main() {
    slice := generateSlice(20)
    fmt.Println("\n--- Unsorted --- \n\n", slice)
    insertionsort(slice)
    fmt.Println("\n--- Sorted ---\n\n", slice, "\n")
}

func generateSlice(size int) []int {
    slice := make([]int, size, size)
    rand.Seed(time.Now().UnixNano())
    for i := 0; i < size; i++ {
    slice[i] = rand.Intn(999) - rand.Intn(999)
    }
    return slice
}

func insertionsort(items []int) {
    var n = len(items)
    for i := 1; i < n; i++ {
        j := i
        for j > 0 {
        if items[j-1] > items[j] {
            items[j-1], items[j] = items[j], items[j-1]
        }
        j = j - 1
        }
    }
}

我想知道名称“插入”有什么问题?

标签: govisual-studio-code

解决方案


请仔细阅读错误。查看错误发生的位置:第 2 行,字符 1。这意味着您的源文件中有一些无效字符。文件名不是问题。U+00A0是一个NO-BREAK SPACE,这意味着您的文件中有一个无效的不间断空格字符,它将显示为不可见。

显然,您有以下内容:

package main
X
import (

哪里X是(不可见的)NO-BLOCK SPACE(也就是&nbsp;HTML 语言)。

猜测可能是您从网站复制粘贴了此代码,并且&nbsp;粘贴中错误地包含了 a。


推荐阅读