($var:ident; $e:expr) => { let $var = ...; $e }
А если я хочу, например, чтобы выражение вставлялось условно?
Если ты хочешь чтобы тебя поняли правильно сделай МРЕ
не очень понял. что-то такое? ($($var:ident; )? $e:expr) => { $( let $var = ...; )? $e }
Да. И тут $var ушел в отдельный скоуп
тут нету отдельных скоупов.
Есть. $var не виден вне ()? блока
Но... это то чего ты и просил "А если я хочу, например, чтобы выражение вставлялось условно?", оно вставляется условно... Если ты представишь пример кода который показывает что ты хочешь, тебе будет легче помочь
если что ()? не создаёт скоупов как {}
а как в () можно создавать переменные?
мы про макросы, ты в $()? любые токены можешь запихнуть.
плюсую MRE, а то не очень конструктивно выходит
Обычные скобки таки осознают скоуп, и переменную ты в них объявить можешь ;)
let expressions in this position are experimental fn main() { (let x = 4) }
я случайно отправил сообщение, сорян. Полез проверять и это даже в Найтли не работает 🤦♀
Обсуждают сегодня