Пожалуйста, проверьте это на детской площадке!
let sString = "236.86"
var dNumber = NSNumberFormatter().numberFromString(sString)
var nDouble = dNumber!
var eNumber = Double(nDouble) * 3.7
Кстати, в моем Xcode
.toDouble () - не существует
.doubleValue создать значение 0.0 из не числовых строк ...
Я ищу клиента OAuth и нашел это.
blockquote>Вы нашли незаконченный проект, в то время как наилучшим подходом было бы написание привязки для модуля npm oauth .
Прежде всего, если вы планируете интегрироваться с Twitter, рассмотрите возможность получения токена доступа по узлу, запустите twitter_oauth_getter.js (обратите внимание на оба комментария).
Затем замените секреты 2 + 2 (ключи приложения и пользователя) в
oauth.get
и, наконец, экспортируйте их как модуль неиспользуемых функций.Например, допустим, вы просто хотите вывести несколько твитов, вы можете передать функцию
log
как эффективный обратный вызов ."use strict"; module.exports = { sayHelloInEnglish: function() { return "HELLO"; }, logMyTweets: function(callback) { var OAuth = require('oauth'); var oauth = new OAuth.OAuth( 'https://api.twitter.com/oauth/request_token', 'https://api.twitter.com/oauth/access_token', 'app key', 'app token', '1.0A', null, 'HMAC-SHA1' ); oauth.get( 'https://api.twitter.com/1.1/lists/statuses.json?slug=develop&owner_screen_name=giuliohome_2017&count=2', //'https://api.twitter.com/1.1/trends/place.json?id=23424977', 'user token', 'user secret', function (e, data, res){ if (e) console.error(e); callback (data); }); } };
Привязка Purescript
Теперь, следуя приведенному выше примеру, вы напишите привязку Purescript (то же имя с расширением .purs вместо .js)
module Twitting where import Data.Unit import Data.Function.Uncurried (Fn0, Fn1) import Effect (Effect) import Effect.Uncurried foreign import sayHelloInEnglish :: Fn0 String foreign import logMyTweets :: EffectFn1 (EffectFn1 String Unit) Unit
И вариант использования может быть
module Main where import Prelude import Effect (Effect) import Effect.Console (log) import Twitting import Data.Function.Uncurried (Fn0, runFn0, Fn1, runFn1) import Effect.Uncurried (runEffectFn1, mkEffectFn1) callback :: String -> Effect Unit callback = log main :: Effect Unit main = do log "Hello sailor!" log (runFn0 sayHelloInEnglish) runEffectFn1 logMyTweets (mkEffectFn1 callback)
Следующие шаги
Теперь, конечно, мы можем перейти к Аргонавтам
Так как наша программа получает данные
blockquote>JSON
в виде строки, нам, вероятно, нужна функцияjsonParser
вData.Argonaut.Parser
, которая является очень простой оболочкой для JavaScriptJSON.parse
. В противном случае значенияJson
могут быть введены в нашу программу через FFIconcat :: forall a. Foldable a => a String -> String concat tt = foldl (\a x -> x <> "\n" <> a) "" tt showText :: Object A.Json -> String showText tweet = maybe "no text" A.stringify (lookup "text" tweet) toJsonObject :: A.Json -> String toJsonObject j = A.caseJsonObject "not a json object " showText j transform :: Array A.Json -> Array String transform e = map toJsonObject e showTweets :: A.Json -> Array String showTweets tweets = A.caseJsonArray ["not a json array"] transform tweets parse :: String -> String parse j = either (\x -> x <> "\n" <> j) (\x -> concat( showTweets x)) (jsonParser j) callback :: String -> Effect Unit callback j = do log (parse j)
Наконец, предполагая, что мы находимся на стороне сервера, мы, вероятно, опубликуем веб-приложение, используя HTTP-сервер, такой как гипер
type
и data
- две разные вещи. type
вводит синоним типа (другое имя для существующего типа), тогда как data
вводит алгебраический тип данных (различающиеся суммы и произведения других типов).
Записи - это тоже что-то другое. { a ∷ A }
определенно эквивалентен Record (a ∷ A)
.
Строка 228 не анализируется, потому что отсутствует имя конструктора. data X = { a ∷ A }
является недопустимым синтаксисом, а data X = Y { a ∷ A }
является допустимым синтаксисом.