Как лучше всего функционально разделить строку с помощью разделителя?

Mixins являются хорошей функцией. В основном mixins позволяют Вам иметь конкретный код для интерфейса вместо класса. Затем просто реализуйте интерфейс в наборе классов, и Вы автоматически получаете смешивание функциональности. Например, для смешивания в глубоком копировании в несколько классов определите интерфейс

internal interface IPrototype<T> { }

, Добавляет функциональность для этого интерфейса

internal static class Prototype
{
  public static T DeepCopy<T>(this IPrototype<T> target)
  {
    T copy;
    using (var stream = new MemoryStream())
    {
      var formatter = new BinaryFormatter();
      formatter.Serialize(stream, (T)target);
      stream.Seek(0, SeekOrigin.Begin);
      copy = (T) formatter.Deserialize(stream);
      stream.Close();
    }
    return copy;
  }
}

Тогда интерфейс реализации в любом типе для получения смешивания.

25
задан HaskellElephant 6 November 2013 в 15:06
поделиться

3 ответа

Разве Data.List.Split.splitOn не делает этого?

35
ответ дан 28 November 2019 в 17:51
поделиться

Этот код отлично работает, используйте: - разделите «Ваша строка» [] и замените ',' любым разделителем

split [] t = [t]
split (a:l) t = if a==',' then (t:split l []) else split l (t++[a])
1
ответ дан 28 November 2019 в 17:51
поделиться
splitBy del str = helper del str []   
    where 
        helper _ [] acc = let acc0 = reverse acc in [acc0] 
        helper del (x:xs) acc   
            | x==del    = let acc0 = reverse acc in acc0 : helper del xs []  
            | otherwise = let acc0 = x : acc     in helper del xs acc0 
2
ответ дан 28 November 2019 в 17:51
поделиться
Другие вопросы по тегам:

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