LINUX.ORG.RU

Деструкция массива

 ,


0

2

Сегодня применил в первый раз за многие годы кодинга

baseName, ext = fileName.split(".", 2)
Не как там в Го где туплы с err на каждый вызов и фича вынужденная (вообще не понимаю зачем туплы когда можно микро структурки - они хоть именованные, а в Го вообще не осилили Maybe/Option как нормальные люди делают) Подумал что мб удобно еще для парсинга CVS
name, occupation, salary = cvsLine.split(cvsSep)
А больше применений этой фиче в нормальных языках не вижу.

★★★★

Последнее исправление: tailgunner (всего исправлений: 1)

Следующий раз за многообразие тегов получишь штраф.

tailgunner ★★★★★
()
Ответ на: комментарий от shdown

жж. Вроде «поел», «поспал», «сходил в туалет»

vertexua ★★★★★
()

Уходи.

нормальных языках
Go

/0

fileName.split(".", 2)

Используйте нормальные либы для работы с фс.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

тут именно тот случай.
В руби File.basename отделяет только одно расширение файла и то если попросишь.
А мне надо было превратить «archive.tar.gz» в [«archive», «tar.gz»] те отделить вообще все расширения

bga_ ★★★★
() автор топика

Го вообще не осилили Maybe/Option

В гоу много чего не осилили
Например, когда в питоне нужно прочитать json, делаем просто
resp_json = p.stdout.read().decode('utf8')
k = json.loads(resp_json)
и получаем готовый словарь, независимо от глубины этого словаря

В гоу все сильно сложнее
С помощью интерфейсов нужно ручками написать структуру, полностью соответствующую данному словарю

kto_tama ★★★★★
()

Что сказать-то хотел?

thunar ★★★★★
()
Ответ на: комментарий от bga_
>>> 'archive.tar.gz'.split('.',2)
['archive', 'tar', 'gz']

Ибо второй параметр - это число делений, а не фрагментов.

anonymous
()
Ответ на: комментарий от kto_tama

и получаем готовый словарь, независимо от глубины этого словаря
В гоу все сильно сложнее
С помощью интерфейсов нужно ручками написать структуру, полностью соответствующую данному словарю

Чем map[string]interface{} не устраивает?

Да, потом нужно кастить типы, как и в любом другом статически-типизированном языке.

korvin_ ★★★★★
()

Ну не видишь и не видишь, в чем проблема / что обсуждать?

Octagon
()

Не понял о чем пост, но мнение имею: когда в го завезут норм графическую либу, будет торт.

Deleted
()

В питоне для работы с путями в ФС лучше использовать os.path.
А лисапеды свои никому не показывать.
И это не деструкция (разрушение), а распаковка массива.

Virtuos86 ★★★★★
()
Последнее исправление: Virtuos86 (всего исправлений: 1)

А больше применений этой фиче в нормальных языках не вижу.

Результат работы unzip можно сразу распаковывать в отдельные колонки

>>> rows = [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')]
>>> numbers, letters = zip(*rows)
>>> numbers
(1, 2, 3, 4, 5)
>>> letters
('a', 'b', 'c', 'd', 'e')

Crocodoom ★★★★★
()
Ответ на: комментарий от Virtuos86

А лисапеды свои никому не показывать.

Правильно. Особенно на ЛОРе. Скажут что ты говно. Мы скажем. Я скажу

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)

А больше применений этой фиче

какой фиче ? split ?

Dred ★★★★★
()
Ответ на: комментарий от kto_tama

Например, когда в питоне нужно прочитать json
нужно ручками написать структуру

Ты не видишь разницы между ЯП с динамической и стройкой типизацией ? Ну сложи в гошный интерфейс, кто мешает.

Dred ★★★★★
()
Ответ на: комментарий от bga_

В общем-то, это вообще зачаток паттерн-матчинга, сопоставления с образцом. В Python 2 еще можно такие выверты делать:

>>> def f((a, b), c):
...     print a, b, c
... 
>>> f("a b".split(), "c")
a b c
>>> 

Virtuos86 ★★★★★
()
Ответ на: комментарий от Dred

Ты не видишь разницы между ЯП с динамической и стройкой типизацией ?

Подорвём стройку типизации динамитческой!

Virtuos86 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.