我需要覆盖>>和<< QDataStream的运算符。我的代码是:
import Html exposing (..)
import String
import Lazy.List as LL exposing (LazyList)
type alias Stack = List String
push : String -> Stack -> Stack
push tok stack =
(tok :: stack)
pop : Stack -> (Maybe String, Stack)
pop stack =
case stack of
hd :: tl -> (Just hd, tl)
_ -> (Nothing, [])
stackIterator : Stack -> LazyList String
stackIterator stack =
LL.iterate (\(mhd, tl) -> pop tl) (pop stack)
|> LL.map fst
|> LL.takeWhile (\a -> a /= Nothing)
|> LL.map (Maybe.withDefault "") -- Default just for theoretical completeness
reverseString: String -> String
reverseString incoming =
let
stringStack = incoming
|> String.split ""
|> List.foldl push []
in
LL.foldr String.append "" (stackIterator stringStack)
main : Html
main =
"Hello World!"
|> reverseString
|> toString
|> text
成功编译之后,我会遇到一些误解错误:
QDataStream &operator <<(QDataStream &out, const SScenarioEntry Entry)
{
out.writeRawData(Entry.EntryName, sizeof(Entry.EntryName));
out << Entry.Number;
out << Entry.Type;
out.writeRawData(Entry.RequestString, sizeof(Entry.RequestString));
out.writeRawData(Entry.AnswerString, sizeof(Entry.AnswerString));
out.writeRawData(Entry.AdditionalParams, sizeof(Entry.AdditionalParams));
out << Entry.Timeout;
return out;
}
QDataStream &operator >>(QDataStream &in, SScenarioEntry Entry)
{
in.readRawData(Entry.EntryName, sizeof(Entry.EntryName));
in >> Entry.Number;
in >> Entry.Type;
in.readRawData(Entry.RequestString, sizeof(Entry.RequestString));
in.readRawData(Entry.AnswerString, sizeof(Entry.AnswerString));
in.readRawData(Entry.AdditionalParams, sizeof(Entry.AdditionalParams));
in >> Entry.Timeout;
return in;
}
我有两个问题:
Tnx的答案。
答案 0 :(得分:0)
这很奇怪,但问题是通过划分功能公告和说明来解决的。