背景:我想创建一个记事本相似的应用程序,其中多人可以编辑一个文档/记事本.我已经创建了图形界面,现在想开始研究它的多用户协作部分.
问题:如何从一个客户端的文本框中获取文本以转到另一个客户端的文本框.我会使用套接字吗?我将在哪里存储将与所有客户共享的文本?我必须使用/做什么才能创建一个功能实时的协作文本框.什么是我可以研究的良好起点?
示例:Etherpad.com/Titanpad.com/Piratepad.com或Docs.Google.com(除非我想创建桌面应用程序,而不是网站)
解决答案中出现的一些问题:
用户如何选择他们想要编辑的文档:是的
用户如何创建新文档:通过选择主菜单中的"新建文件"选项
如果许多用户尝试一次编辑同一文档会发生什么?:他们都被允许编辑文档.
在反映更改之前,用户是否需要单击"保存"按钮?:不,应该同时反映变化
用户是否需要登录?:是的
任何人都可以编辑任何文档,还是有访问限制?:有限制即.文档的创建者可以阻止用户编辑文档.
初学者问题;并且搜索找不到任何类似的东西。
背景:我只是通过创建改组函数来练习 Rust 中的函数。程序接受任何参数并将它们打乱并将它们存储在“ result”中
问题:我想我不能V<_>在函数头中使用,那么在这种情况下我会使用什么?
MCVE:
use std::io;
use std::cmp::Ordering;
use std::env;
fn main()
{
let mut result = shuffle(env::args().collect());
}//End of main
fn shuffle(args: Vec<_>) -> Vec<_>
{
let mut temp = Vec::with_capacity((args.capacity()));
while args.len() > 1
{
//LET N REPRESENT A RANDOM NUMBER GENERATED ON EACH ITERATION
let mut n = 2;
temp.push(args.swap_remove(n));
}
return temp;
}//End of shuffle function
Run Code Online (Sandbox Code Playgroud)
我正在尝试每日程序员问题来混洗一个参数列表并输出它们.
我不确定这是否是正确的方法,但它听起来是个好主意:从args向量中删除元素,使其不会重复,并将其插入到结果向量中.
extern crate rand;
use std::io;
use std::cmp::Ordering;
use std::env;
use rand::Rng;
fn main() {
let mut args: Vec<_> = env::args().collect();
let mut result: Vec<_> = Vec::with_capacity(args.capacity());
if args.len() > 1 {
println!("There are(is) {} argument(s)", args.len() - 1)
}
for x in args.iter().skip(1) {
let mut n = rand::thread_rng().gen_range(1, args.len());
result.push(&args.swap_remove(n));
}
for y in result.iter() {
println!("{}", y);
}
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
error[E0597]: borrowed value does not live long enough
--> src/main.rs:18:42
|
18 | result.push(&args.swap_remove(n)); …Run Code Online (Sandbox Code Playgroud) 我正在阅读代表迷宫图案的文本文件.每行读入1d char数组,然后将一个1d数组插入到2d char数组中.
在以下方法中获取nullpointerexception
line = (input.readLine()).toCharArray();
Run Code Online (Sandbox Code Playgroud)
private void fillArrayFromFile() throws IOException
{
BufferedReader input = new BufferedReader(new FileReader("maze.txt"));
//Read the first two lines of the text file and determine the x and y length of the 2d array
mazeArray = new char[Integer.parseInt(input.readLine())][Integer.parseInt(input.readLine())];
char [] line = new char[10];
//Add each line of input to mazeArray
for (int x = 0; x < mazeArray[0].length; x++)
{
line = (input.readLine()).toCharArray();
System.out.print(x + " : ");
System.out.println(line);
mazeArray[x] = line;
}
}
Run Code Online (Sandbox Code Playgroud)