Показать сообщение отдельно
  #11 (permalink)  
Старый 19.11.2018, 05:10
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от Aetae
...ключи, ...значения, ...хочется чтобы любая задача решалась красиво и аккуратно... нет няшного литерала... писать на своём особом js с блэкджеком...
В итоге у вас получится код, который никто не поймёт. И вы уже не сможете сказать, что пишете на JavaScript.

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

JavaScript
const pets = new Map([
	["Scratchy", "Guinea Pig"],
	["Squeeky", "Guinea Pig"],
	["Fluffy", "Rabbit"],
	["Thumper", "Rabbit"],
	["Snoopy", "Dog"],
	["Tiddles", "Cat"]
]);

for(const [key, value] of pets) {
	console.log(`Свойство: ${key}. Значение свойства: ${value}`);
}


C#
Запустить
using System;
using System.Collections.Generic;

class MainClass {
	public static void Main (string[] args) {
		var pets = new Dictionary<String, String> {
			{ "Scratchy", "Guinea Pig" },
			{ "Squeeky", "Guinea Pig" },
			{ "Fluffy", "Rabbit" },
			{ "Thumper", "Rabbit" },
			{ "Snoopy", "Dog" },
			{ "Tiddles", "Cat" }
		};

		foreach(var pair in pets) {
			Console.WriteLine($"Свойство: {pair.Key}. Значение свойства: {pair.Value}");
		}
	}
}


Haskell
Запустить
pets :: [(String, String)]
pets =
  [
    ("Scratchy", "Guinea Pig"),
    ("Squeeky", "Guinea Pig"),
    ("Fluffy", "Rabbit"),
    ("Thumper", "Rabbit"),
    ("Snoopy", "Dog"),
    ("Tiddles", "Cat")
  ]

main :: IO()
main = mapM_ (
  \(key, value) -> putStrLn $
    "Свойство: " ++ key ++ ". Значение свойства: " ++ value
  ) pets


C++
Запустить
#include <map>
#include <iostream>
#include <cassert>

using namespace std;

int main(int argc, char **argv) {
	map<string, string> pets = {
		{ "Scratchy", "Guinea Pig" },
		{ "Squeeky", "Guinea Pig" },
		{ "Fluffy", "Rabbit" },
		{ "Thumper", "Rabbit" },
		{ "Snoopy", "Dog" },
		{ "Tiddles", "Cat" }
	};

	for(auto const& [key, value] : pets) {
		cout
			<< "Свойство: "
			<< key
			<< ". Значение свойства: "
			<< value
			<< endl;
	}
	
	return 0;
}


Swift
Запустить
let pets = [
	"Scratchy": "Guinea Pig",
	"Squeeky": "Guinea Pig",
	"Fluffy": "Rabbit",
	"Thumper": "Rabbit",
	"Snoopy": "Dog",
	"Tiddles": "Cat"
]

for (key, value) in pets {
	print("Свойство: \(key). Значение свойства: \(value)")
}

Последний раз редактировалось Malleys, 19.11.2018 в 05:19.
Ответить с цитированием