Вы также можете попробовать следующее:
JFileChooser c = new JFileChooser (); c.showOpenDialog (с); Файл write_file = c.getSelectedFile (); String Content = "Запись в файл"; // то, что вы хотели бы добавить в файл try {RandomAccessFile raf = new RandomAccessFile (write_file, "rw"); long length = raf.length (); //System.out.println(length); raf.setLength (длина + 1); // + (целочисленное значение) для расстояния raf.seek (raf.length ()); raf.writeBytes (содержание); raf.close (); } catch (Исключение e) {// любой метод обработки исключений для выбора ur}
В большинстве случаев вы можете положиться на вывод типа для разработки подписи для вас. В вашем примере достаточно:
Prelude> let addTwo x y = x + y
Если вам действительно нужно определение с сигнатурой типа, или ваше определение охватывает несколько строк, вы можете сделать это в ghci:
Prelude> :{
Prelude| let addTwo :: Int -> Int -> Int
Prelude| addTwo x y = x + y
Prelude| :}
Prelude> addTwo 4 7
11
Обратите внимание, что вы также можете сжать это на одну строку:
Prelude> let addTwo :: Int -> Int -> Int ; addTwo x y = x + y
Вы можете узнать больше о взаимодействии с ghci в интерактивной оценке в строке приглашения документации.
Решите эту проблему, активировав GHCI и набрав :set +m
:
Prelude> :set +m
Prelude> let addTwo :: Int -> Int -> Int
Prelude| addTwo x y = x + y
Prelude|
Prelude> addTwo 1 3
4
Boom.
Что здесь происходит (и я говорю в основном о вы, человек, ищущий помощь в процессе работы Learn You A Haskell ) - это то, что GHCI - это интерактивная среда, в которой вы меняете привязки имен функций на лету. Вы должны обернуть определения своих функций в блок let
, чтобы Haskell знал, что вы собираетесь что-то определить. Свойство :set +m
является сокращением для многострочной конструкции :{
кода :}
.
Пробелы также значительны в блоках, поэтому вам необходимо отложить определение своей функции после определение типа на четыре пространства для учета четырех пространств в let
.
Используйте let
:
Prelude> :{
Prelude| let addTwo :: Int -> Int -> Int
Prelude| addTwo x y = x + y
Prelude| :}
Prelude> addTwo 2 3
5
let
начинает блок; записи в блоке сгруппированы по отступу; и первый не-пробельный символ в блоке устанавливает отступ, с помощью которого они группируются. Поскольку первый символ без пробелов в блокеlet
вышеa
вaddTwo
, все строки в блоке должны быть отступом точно так же глубоко, какa
. – Daniel Wagner 9 December 2011 в 14:40