Что такое именованный номер?

Коммандер Go ( go tool link ) имеет возможность установить значение неинициализированной строковой переменной:

-X importpath.name=value
    Set the value of the string variable in importpath named name to value.
    Note that before Go 1.5 this option took two separate arguments.
    Now it takes one argument split on the first = sign.

Как часть процесса сборки, вы можете с помощью этого используйте переменную строки версии. Вы можете передать это через инструмент go, используя -ldflags. Например, с учетом следующего исходного файла:

package main

import "fmt"

var xyz string

func main() {
    fmt.Println(xyz)
}

Затем:

$ go run -ldflags "-X main.xyz=abc" main.go
abc

Чтобы установить main.minversion на дату и время сборки при создании:

go build -ldflags "-X main.minversion=`date -u +.%Y%m%d.%H%M%S`" service.go

Если вы скомпилируете без инициализации main.minversion таким образом, он будет содержать пустую строку.

0
задан Hugh_Kelley 14 March 2019 в 10:12
поделиться

2 ответа

«Named foo» в выходных данных str просто означает, что ваш объект является вектором foo с именами, прикрепленными к нему.

x <- c(1,2,3)
names(x) <- letters[1:3]
str(x)
# Named num [1:3] 1 2 3
# - attr(*, "names")= chr [1:3] "a" "b" "c"

y <- c("bar", "baz")
names(y) <- letters[1:2]
str(y)
# Named chr [1:2] "bar" "baz"
# - attr(*, "names")= chr [1:2] "a" "b"
0
ответ дан Hong Ooi 14 March 2019 в 10:12
поделиться

Вот решение для доступа к именам по порядку и названию максимума:

v <- c(a=1, b=2, c=-1)
names(sort(v))
> [1] "c" "a" "b"
names(which.max(v))
> "b"
0
ответ дан Clemsang 14 March 2019 в 10:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: