Go: 解决import | go get 之后,导入的包还是显示unresolved

本文介绍在Goland环境下创建项目时遇到的包导入标红问题及其解决方案。即使通过goget成功导入包,IDE仍可能因未检测到外部库而标记为错误。文章提供了具体步骤来启用Goland的相应设置,确保正确识别已导入的包。
问题背景

我在goland下创建了一个项目,但是导入包的时候命名用go get导入成功了,import的部分还是显示红色(没有导入成功):
在这里插入图片描述
没导入成功的时候这里会标红,我这里因为导入成功了所以是绿色的。

有时候其实已经导入成功了,也可以正常运行,但是引入的包就是会标红色。

解决方式

其实会标红色是因为在你的项目里面没有external libraries,所以go get或者go build引入的包没有办法在你当前的项目里面找到。

解决方式如下:
选择设置:
在这里插入图片描述
然后勾选上这个选项就可以了:
在这里插入图片描述

type languageItem = { label: string choiced: boolean } // 初始化语言列表 function initLanguageList(): LanguageItem[] { return [ { label: '自动检测', choiced: true }, { label: '中文', choiced: false }, { label: '英语', choiced: false }, { label: '日语', choiced: false }, { label: '韩语', choiced: false }, { label: '法语', choiced: false }, { label: '德语', choiced: false }, { label: '西班牙语', choiced: false }, { label: '俄语', choiced: false }, ]; }; function initTargetLanguageList():LanguageItem[] { return [ { label: '中文', choiced: false }, { label: '英语', choiced: true }, { label: '日语', choiced: false }, { label: '韩语', choiced: false }, { label: '法语', choiced: false }, { label: '德语', choiced: false }, { label: '西班牙语', choiced: false }, { label: '俄语', choiced: false }, ]; }; // 语言列表 const languageList = ref<LanguageItem[]>(initLanguageList()); const languageList2 = ref<LanguageItem[]>(initTargetLanguageList()); // 选中的标签状态(用于记住用户选择的标签) const selectedTags = ref(new Set()); // 从本地存储恢复状态 const restoreFromStorage = () => { // 恢复源语言选择 const savedFromLang = storage.get(STORAGE_KEYS.FROM_LANGUAGE); if (savedFromLang != null && typeof savedFromLang === 'string') { languageList.value.forEach((item) => { item.choiced = item.label === savedFromLang; }); menu1default.value = savedFromLang; } // 恢复目标语言选择 const savedToLang = storage.get(STORAGE_KEYS.TO_LANGUAGE); if (savedToLang != null && typeof savedToLang === 'string') { languageList2.value.forEach((item) => { item.choiced = item.label === savedToLang; }); menu1default2.value = savedToLang; } // 恢复选中的标签 const savedTags = storage.get(STORAGE_KEYS.SELECTED_TAGS); if (savedTags != null && Array.isArray(savedTags)) { selectedTags.value = new Set(savedTags); } }; // 保存状态到本地存储 const saveToStorage = () => { // 保存源语言 storage.set(STORAGE_KEYS.FROM_LANGUAGE, menu1default.value, 0); // 保存目标语言 storage.set(STORAGE_KEYS.TO_LANGUAGE, menu1default2.value, 0); // 保存选中的标签 storage.set(STORAGE_KEYS.SELECTED_TAGS, Array.from(selectedTags.value), 0); }; // 切换菜单显示状态 const showLangListBtn1 = () => { showLangList1.value = !showLangList1.value; if (showLangList2.value) { showLangList2.value = false; } }; const showLangListBtn2 = () => { showLangList2.value = !showLangList2.value; if (showLangList1.value) { showLangList1.value = false; } }; // 选择源语言 const selectFromLanguage = (value, index) => { // 清除所有选中状态 languageList.value.forEach(item => item.choiced = false); // 设置当前选中 value.choiced = true; menu1default.value = value.label; showLangList1.value = false; // 保存状态 saveToStorage(); console.log('选择源语言:', value.label); }; // 选择目标语言 const selectToLanguage = (value, index) => { // 清除所有选中状态 languageList2.value.forEach(item => item.choiced = false); // 设置当前选中 value.choiced = true; menu1default2.value = value.label; showLangList2.value = false; // 保存状态 saveToStorage(); console.log('选择目标语言:', value.label); }; // 交换语言功能 const swapLanguages = () => { const temp = menu1default.value; menu1default.value = menu1default2.value; menu1default2.value = temp; // 更新列表中的选中状态 languageList.value.forEach(item => { item.choiced = item.label === menu1default.value; }); languageList2.value.forEach(item => { item.choiced = item.label === menu1default2.value; }); // 保存状态 saveToStorage(); console.log('语言交换:', menu1default.value, '->', menu1default2.value); [plugin:uni:app-uts] 编译失败 14:01:43.720 ‌⁠error: Unresolved reference: LanguageItem‌ 14:01:43.720 at pages/shenlanaiPage/chart.uvue:242:29 14:01:43.720 240| 14:01:43.720 241| // 初始化语言列表 14:01:43.720 242| function initLanguageList(): LanguageItem[] { 14:01:43.720 | ^ 14:01:43.720 243| return [ 14:01:43.720 244| { label: '自动检测', choiced: true },⁠ 14:01:43.720 ‌⁠error: Unresolved reference: LanguageItem‌ 14:01:43.720 at pages/shenlanaiPage/chart.uvue:256:34 14:01:43.720 254| }; 14:01:43.720 255| 14:01:43.720 256| function initTargetLanguageList():LanguageItem[] { 14:01:43.720 | ^ 14:01:43.720 257| return [ 14:01:43.720 258| { label: '中文', choiced: false },⁠ 14:01:43.720 ‌⁠error: Unresolved reference: LanguageItem‌ 14:01:43.720 at pages/shenlanaiPage/chart.uvue:270:25 14:01:43.720 268| 14:01:43.720 269| // 语言列表 14:01:43.720 270| const languageList = ref<LanguageItem[]>(initLanguageList()); 14:01:43.720 | ^ 14:01:43.720 271| const languageList2 = ref<LanguageItem[]>(initTargetLanguageList()); 14:01:43.720 272| ⁠ 14:01:43.720 ‌⁠error: Unresolved reference: LanguageItem‌ 14:01:43.720 at pages/shenlanaiPage/chart.uvue:271:26 14:01:43.721 269| // 语言列表 14:01:43.721 270| const languageList = ref<LanguageItem[]>(initLanguageList()); 14:01:43.721 271| const languageList2 = ref<LanguageItem[]>(initTargetLanguageList()); 14:01:43.721 | ^ 14:01:43.721 272| 14:01:43.721 273| // 选中的标签状态(用于记住用户选择的标签)⁠ 14:01:43.721 ‌⁠error: Not enough information to infer type variable T‌ 14:01:43.721 at pages/shenlanaiPage/chart.uvue:274:21 14:01:43.721 272| 14:01:43.721 273| // 选中的标签状态(用于记住用户选择的标签) 14:01:43.721 274| const selectedTags = ref(new Set()); 14:01:43.721 | ^ 14:01:43.721 275| 14:01:43.721 276| // 从本地存储恢复状态⁠ 14:01:43.778 代码编译报错?点击这里,AI智能诊断并修复! };
最新发布
09-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值