الرجاء الإجابة على هذه الأسئلة قبل إرسال مشكلتك. شكرا!
go version
)؟go version go1.6 darwin/amd64
go env
)؟GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/ash/code/go"
GORACE=""
GOROOT="/Users/ash/.homebrew/Cellar/go/1.6/libexec"
GOTOOLDIR="/Users/ash/.homebrew/Cellar/go/1.6/libexec/pkg/tool/darwin_amd64"
GO15VENDOREXPERIMENT="1"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"
بالنظر إلى ملف الإدخال هذا demo.go
:
package main
// #include <unistd.h>
import "C"
import "fmt"
func main() {
foo := 1
C.close(2)
fmt.Println(foo)
}
قم بتشغيل هذا الأمر: gorename -offset demo.go:#78 -to bar
يعيد التسمية بدون خطأ: Renamed 2 occurrences in 1 file in 1 package.
تلقيت هذا الخطأ: gorename: -offset "demo.go:#78": no identifier at this position
/ ccalandonovan
تواجه نفس المشكلة ، هل هناك أي حل بديل لهذا؟
لست متأكدًا عندما (أنا على الذهاب 1.9.2) ولكن الخطأ تغير إلى: "gorename: لا يمكن إعادة تسمية المعرفات في الملف الذي تم إنشاؤه والذي يحتوي على علامة DO NOT EDIT"
واستغرقت بعض الوقت لأكتشف أن اسم gorename لا يعمل على ملفات cgo. يجب على الأقل تغيير رسالة الخطأ إذا لم يكن هناك إصلاح في أي وقت قريبًا.
التعليق الأكثر فائدة
تواجه نفس المشكلة ، هل هناك أي حل بديل لهذا؟