ls
- список типа List[Int]
foldLeft
- Создать что-то новое из Int
элементов ls
. List[Int]()
- Это что-то новое будет другим List[Int]
. Начните с пустого. (c, _)
- С каждым шагом получайте List
, который мы строим, мы назовем его c
и Int
из ls
, но не дадим ему имя (т.е. выбросим его ). [1 123] _:::c
- Попробуйте объединить 2 списка вместе. Одним из них является список c
, который мы создаем, а другим ... ничего. Это не List
или Int
. Это неназванный параметр, но у нас его нет. Из 2 полученных параметров один был назван c
, а другой был отброшен. Вот один способ исправить это: (c, n) => List(n):::c
(объединить 2 списка вместе)
Вот лучший способ исправить это: (c, n) => n::c
(добавить новый элемент в начало этого списка )
Использование неназванных параметров: ls.foldLeft(List[Int]())(_.::(_))
Самая стабильная компания я видел это, делает это - MaxMind.
Мой приятель использует, с успехом.
Существует служба геотаргетинга на уровне сообщества hostip.info . У них есть хороший чистый API для поиска IP-адресов с геотаргетингом. В их базе данных более 8,6 миллиона записей.
Пример:
http://api.hostip.info/get_html.php?ip=12.215.42.19&position=true
Country: UNITED STATES (US)
City: Sugar Grove, IL
Latitude: 41.7696
Longitude: -88.4588
, если вы добавите, просто позвоните:
http://api.hostip.info/?ip=12.215.42.19
Вы получите обратно XML-документ.
Источник: Скотт Хансельман - Еженедельный исходный код 37 - Геолокация / геотаргетинг (обратный поиск IP-адресов) в ASP. NET MVC стало проще
Я использовал IPInfoDB (который может использовать ту же базу данных, что и MaxMind), который имеет простые форматы XML и JSON для своего API, а также Google ClientLocation. Ни один из них не идеален, и они часто не соглашаются. Я не обнаружил, что один лучше другого.