Size: a a a

2021 June 11

с

сонная википедия... in Go-go!
да
источник

SS

Simon S in Go-go!
спасибо!
источник

Q

Quant in Go-go!
может хочет чтоб ему кто-нибудь возразил и доказал свою позицию по решению
источник

RS

Roman Sharkov in Go-go!
короче..

идёшь циклом по строке, пытаешься прочитать число (последовательность цифр 0-9), если удаётся прочитать число то парсим с помощью strconv.ParseInt и записываем его в переменную x
если не удаётся - возвращаем ошибку (syntax error)

дальше ожидаем оператор, если там не оператор то опять ошибка, иначе запоминаем какой это тип оператор и ожидаем после него снова число, и если удаётся его прочитать то

if operator == '+' {
 x += n
} else {
 x -= n
}


пробелы просто перепрыгиваем и игнорируем.
читаем пока не дойдём до конца строки.
источник

RS

Roman Sharkov in Go-go!
если появятся операторы множения и деления, тогда подход нужен уже совершенно иной чтобы учитывать operator precedence. В таком случае было бы полезно построить AST
источник

VL

Vladimir Lepeshko in Go-go!
А могу я, например, создать две карты map, где :
digits := map[string]int {"0":0, "1":1, и т.д.}
operator := map[string]func (int, int) int {"+": функция сложения, "-" : функция вычитания}

И сравнивать символы последовательности с картой цифр, а оператор с картой операторов?
источник

VL

Vladimir Lepeshko in Go-go!
И выбирать по оператору действие
источник

RS

Roman Sharkov in Go-go!
я не понимаю, зачем вы пытаетесь усложнить задачу?)
источник

AS

Andrei 🦉 Sergeev in Go-go!
попробуйте все таки AST, там и структуры необходимые будут :)
источник

LV

Legio V Alaudae in Go-go!
Цифры можно и по ASCII кодам посмотреть )
в стиле isDigit = '0' >= sym && sym >= '9'
источник

VL

Vladimir Lepeshko in Go-go!
Видел такое решение на гитхабе)
источник

SS

Simon S in Go-go!
А стажировка в какой компании?
источник

VL

Vladimir Lepeshko in Go-go!
Вы не пытаетесь понять, что тут не важна сложность решения, меня может учат работать с данными в разных ипостасях
источник

LV

Legio V Alaudae in Go-go!
Это ж кто учит на задачах через задницу?
источник

VL

Vladimir Lepeshko in Go-go!
Пора закругляться, короче))
источник

RS

Roman Sharkov in Go-go!
из того что я понял это: вы пытаетесь научиться программировать 🙂
одни из главных принципов программирования:
- не усложняйте задачу, KISS (keep it simple & stupid)
- не решайте задачи, которых не существует
- не потребляйте больше ресурсов, чем необходимо
источник

LV

Legio V Alaudae in Go-go!
Какое замечательно-культурное описание KISS, но оригинал лучше )
источник

SS

Simon S in Go-go!
А может тут надо написать структуру, которая принимает строку? И реализовать методы для этой стркутуры?
источник

SS

Simon S in Go-go!
Функция калькулятор
источник

SS

Simon S in Go-go!
Функция обработчик
источник