почему делает “(гласный определения? (набор” aeiou “))” работа?

Прежде всего, Am C # Starter, поэтому, если есть возможность редактировать код, я разместил его, пожалуйста, продолжайте и оптимизируйте его.

Читая и пробуя код, (кстати, очень старые посты здесь и там!) И после ссылки на проблема яснее,

Случай 1

Когда я использовал ниже строки, я получил 1441 محرم 24

DateTime.Now.ToString("yyyy MMMM dd", new System.Globalization.CultureInfo("ar-SA"))

Сейчас следите за MMMM и ar-SA специально, чтобы показать месяц под названием محرم .

Проблемы здесь, вы получаете 1441 на английском языке!

Итак

Случай 2

Чтобы взять эту строку шаг далее я использовал метод преобразования в арабские числа ... Этот код должен изменить любую цифру на кодировку арабский / хинди ...

public static string ConvertToEasternArabicNumerals(string input)
        {
            System.Text.UTF8Encoding utf8Encoder = new UTF8Encoding();
            System.Text.Decoder utf8Decoder = utf8Encoder.GetDecoder();
            System.Text.StringBuilder convertedChars = new System.Text.StringBuilder();
            char[] convertedChar = new char[1];
            byte[] bytes = new byte[] { 217, 160 };
            char[] inputCharArray = input.ToCharArray();
            foreach (char c in inputCharArray)
            {
                if (char.IsDigit(c))
                {
                    bytes[1] = Convert.ToByte(160 + char.GetNumericValue(c));
                    utf8Decoder.GetChars(bytes, 0, 2, convertedChar, 0);
                    convertedChars.Append(convertedChar[0]);
                }
                else
                {
                    convertedChars.Append(c);
                }
            }

            return convertedChars.ToString();
        }

Код в сочетании:

DateHelper.ConvertToEasternArabicNumerals(DateTime.Now.ToString("yyyy MMMM dd", new System.Globalization.CultureInfo("ar-SA")));

15
задан durron597 15 July 2015 в 15:23
поделиться

2 ответа

Это отлично походит, как работают карты (самые естественные объекты в Clojure). Когда карту называют как функция, она работает отображением:

user=> (def ob {:foo "bar", :bar :baz, :qwerty 42})
#'user/ob
user=> (ob :foo)
"bar"

Таким образом, это имеет смысл, которым набор Clojure можно назвать как функция и будет работать тестом членства. Между прочим, если Вы используете ключевые слова (те вещи, которые запускаются с двоеточия) как ключи отображения, они также работают подобными функциями, таким образом, можно сделать

user=> (:bar ob)
:baz

и даже то же самое с наборами ключевых слов:

user=> (def vowel-keywords (set [:a :e :i :o :u]))
#'user/vowel-keywords
user=> (:a vowel-keywords)
:a
user=> (:b vowel-keywords)
nil

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

16
ответ дан 1 December 2019 в 03:15
поделиться

Ага! Я закончил тем, что нашел его сам. Это на самом деле не возвращается true или false, скорее это возвращает первое вхождение в наборе или ноль, если это не происходит.

И потому что можно использовать это в качестве условия (ноль, обрабатываемый как ложь и неноль, столь же верный), это работает как миленький взлом на проверку, если строка содержит букву.

(vowel? (first "abc")) ; => "a"
(vowel? (first "cba")) ; => nil

(if (vowel? (first "abc"))
       (println "yay")
       (println "oops"))  ; => "yay"
7
ответ дан 1 December 2019 в 03:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: