Tinkoff / invest-openapi-go-sdk

Apache License 2.0
153 stars 30 forks source link

adding Stringers to domains #39

Closed htol closed 4 years ago

htol commented 4 years ago

Привет!

Прошу добавить немного стрингеров для удобства оперирования константами там, где они нужны в виде строк.

Спасибо

juev commented 4 years ago

Привет,

немного не понял, мы определили alias для типов. И в основном используется именно string. Константы заданы в строком виде. Таким образом легко использовать нечто вроде:

    var s = "sdf" + sdk.OperationTypeBrokerCommission
    logger.Println(s)

Можете привести пример использования стрингеров?

htol commented 4 years ago

Хотелось сделать красиво, но видимо это и правда излишне. Там где хотелось Stringer и не должен работать.

package main

import "fmt"

type CustomType string

func (t CustomType) String() string {
    return string(t)
}

func main() {
    var ex CustomType
    ex = "USD"

    cur := make(map[string]string)
    cur["USD"] = "$"

    fmt.Println(cur[ex.String()])
}

Вот в этой строке fmt.Println(cur[ex.String()]) алиас на стринг работать не будет и приходится либо делать как в примере выше, либо явно оборачивать переменную в string - fmt.Println(cur[string(ex)])

Теперь вот думаю, что нет смысла это добавлять и надо использовать string() вместо .String()

Прошу прощение за беспокойство.