首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏前端干货和生活感悟

    jQuery源码解析之replaceWith()unwrap()

    document.createElement("span") spanA.innerText="永远" divTwo.parentNode.replaceChild(spanA,divTwo) // ==============unwrap -1 : indexOf.call( arr, elem, i ); }, ---- 四:$().unwrap() 作用: 移除被选元素的父元素(父节点是body则无效) 源码: // 源码9798行 //移除被选元素的父元素(父节点是body则无效) unwrap: function( selector ) { //选中目标元素的父节点(除了body) 注意:目标元素的父节点是body的话,$().unwrap()方法无效。 简单实现: $("#pTwo").unwrap() //======相当于===== let pTwoFather=pTwo.parentNode if(pTwoFather.nodeName.toLowerCase

    92230编辑于 2022-03-28
  • 来自专栏退役程序员胡说八道

    【技术布局】rust编程:从unwrap开始解惑

    unwrap()就是对于Result对象进行解包,获取里面的T值,但是如果在unwrap时,Result是Error值,那么就会触发panic。 Err("Error".to_string());let value = result.unwrap();在上述代码中,第一个result被unwrap后的值是123,但是第二个unwrap的时候就会触发 如果它有值,那么在unwrap的时候就会正常返回它所表示的值,如果它不存在值,在unwrap的时候也会触发一个panic。 ();在上述代码中,第一个opt可以被正常unwrap(),得到结果,但是第二个opt在unwrap的时候就会触发panic,因为它是一个空值。 三、稳健使用unwrap在实际项目开发中,盲目使用unwrap可能会导致程序运行中出现多个panic,所以推荐使用unwrap_or来返回一个默认值,或者unwrap_or_else来返回一个闭包的结果

    85610编辑于 2025-01-07
  • 来自专栏前端干货和生活感悟

    jQuery源码解析之detach()empty()remove()unwrap()

    前言: unwrap() 的解析请看 jQuery源码解析之replaceWith()/unwrap() empty() 的解析请看 jQuery之text()的实现 ---- 一、$().empty

    1.8K10编辑于 2022-03-28
  • 来自专栏Rust语言学习交流

    【Rust日报】2022-08-16 unwrap 不是魔鬼

    unwrap 不是魔鬼 unwrap在很多教程里被定义为不好的(evil),实际上, unwrap 在一些场景下是适合使用的,这篇文章从初学者的角度说了一下 unwrap 适用的场景。 ReadMore: https://blog.burntsushi.net/unwrap/ RFC 导读 - 构建安全的 I/O 最近 Rust 官方合并了一个 RFC,通过引入 I/O 安全的概念和一套新的类型和特质

    61640编辑于 2022-11-28
  • 来自专栏bisal的个人杂货铺

    dbms_space.create_table_cost的unwrap解密和原理解析

    俗话说的话,“高手在民间”,从Oracle 9i开始,就有牛人前辈,找出了解密unwrap的一些方法,便于我们学习Oracle的一些实现,对此我是佩服的五体投地。 说unwrap就要提到大名鼎鼎的FyUnWrap工具,他的开发者是黄玮,可能有些人对这个名字陌生,但要说起HelloDBA,就比较出名了。 DBMS_SPACE包,右侧显示的是Oracle wrap加密的信息, 其实上方Wrapped Text的内容来自于$ORACLE_HOME/rdbms/admin/prvtspcu.plb文件,点击Unwrap 我们之前介绍,create_table_cost有两个版本,一个是接受AVG_ROW_SIZE平均行长为参数,一个是接受CREATE_TABLE_COST_COLUMNS类型变量为参数,针对这两种类型,unwrap 对我来说,体验了整个unwrap的过程以及create_table_cost的实现原理,重要的不是结论,而是亲身经历,受益匪浅。

    94220发布于 2019-01-29
  • 来自专栏Rust语言学习交流

    【Rust日报】2021-08-30 如何来看待 unwrap

    如何来看待 unwrap unwrap 方法可能会让新手感到困惑。一些建议: 可以使用 Expect (&str) 而不是 unwrap() 为 panic 提供上下文。 使用 unwrap 和 expect 类似于断言。如果他们 panic,那只有在不可挽回的情况下才会发生。 避免在库代码中使用。 原文链接: https://owengage.com/writing/2021-08-30-how-to-think-of-unwrap/ singleton-cell: 一个更强大的 ghost cell

    97540发布于 2021-09-08
  • 来自专栏福大大架构师每日一题

    2022-05-22:给定一个二叉树,找到最近公共祖先。rust代码修改

    (Rc::clone(&left_left.as_ref().unwrap())); head.as_ref() .unwrap() .borrow() unwrap())), Some(Rc::clone(&left_left.as_ref().unwrap())), Some(Rc::clone(&left_right.as_ref ().unwrap())), ); if ans.is_none() { println! ("ans val = {}", ans.as_ref().unwrap().borrow().val); } println! ("head = {}", head.as_ref().unwrap().borrow().val); println!

    42620编辑于 2022-05-23
  • 来自专栏福大大架构师每日一题

    2022-05-22:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。

    as_ref().unwrap().left); let mut right = Rc::clone(&head.borrow().as_ref().unwrap().right); println ("head = {}", head.borrow().as_ref().unwrap().val); println! ("p = {}", left.borrow().as_ref().unwrap().val); println! ("head = {}", head.borrow().as_ref().unwrap().val); println! ("left = {}", left.borrow().as_ref().unwrap().val); println!

    55720编辑于 2022-06-04
  • 来自专栏Rust语言学习交流

    [大家的项目] rust ssh-rs 0.2.0 发布

    ("{}", String::from_utf8(vec).unwrap()); // 方式二 let channel = session.open_channel().unwrap() ("{}", String::from_utf8(vec).unwrap()); // 关闭会话 session.close().unwrap(); } 2. shell use std ("{}", String::from_utf8(vec).unwrap()); shell.write(b"ls -all\n").unwrap(); sleep(Duration ().unwrap(); let scp: ChannelScp = channel.open_scp().unwrap(); scp.upload("本地路径", "远程路径").unwrap ().unwrap(); scp.download("本地路径", "远程路径").unwrap(); session.close().unwrap(); }

    57730编辑于 2022-11-28
  • 来自专栏福大大架构师每日一题

    2022-05-22:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。

    as_ref().unwrap().left); let mut right = Rc::clone(&head.borrow().as_ref().unwrap().right); println ("head = {}", head.borrow().as_ref().unwrap().val); println! ("p = {}", left.borrow().as_ref().unwrap().val); println! ("head = {}", head.borrow().as_ref().unwrap().val); println! ("left = {}", left.borrow().as_ref().unwrap().val); println!

    58410编辑于 2022-05-22
  • 来自专栏Rust语言学习交流

    【Rust日报】2023-08-30 stainless-steel/sqlite -- 与 SQLite 进行交互的接口

    ("{} = {}", name, value.unwrap()); } true }) .unwrap(); 使用预编译语句运行相同的查询,这比之前的技术要高效得多 ; let mut statement = connection.prepare(query).unwrap(); statement.bind((1, 50)).unwrap(); while let ("name = {}", statement.read::<String, _>("name").unwrap()); println! ; for row in connection .prepare(query) .unwrap() .into_iter() .bind((1, 50)) .unwrap () .map(|row| row.unwrap()) { println!

    24610编辑于 2023-09-26
  • 来自专栏Rust语言学习交流

    【Rust日报】2021-10-07 Rust 可能有益于经验较少的程序员

    (); p.expect(Regex("Name \\(.*\\):")).unwrap(); p.send_line("anonymous").unwrap(); p.expect ("Password").unwrap(); p.send_line("test").unwrap(); p.expect("ftp>").unwrap(); p.send_line ("cd upload").unwrap(); p.expect("successfully changed. \r\nftp>").unwrap(); p.send_line("pwd").unwrap(); p.expect(Regex("[0-9]+ \"/upload\"")).unwrap (); p.send_line("exit").unwrap(); p.expect(Eof).unwrap(); assert_eq!

    47750发布于 2021-10-19
  • 来自专栏菩提树下的杨过

    Rust中的Result枚举

    这类简单重复的判断,经常会用到,rust封装了1个等效的方法:unwrap,其内部实现如下: pub fn unwrap(self) -> T { match self { Ok(t) => t, Err(e) => unwrap_failed("called `Result::unwrap()` on an `Err` value", &e), ("{}", result); unwrap源码中的unwrap_failed继续追下去的话,可以看到: fn unwrap_failed(msg: &str, error: &dyn fmt::Debug ("{}", result); unwrap_or可以传入一个default缺省的错误值,上面这段将输出“err occur”。但这样一来,就把原始的错误信息failure给丢失了! ("{}", result); 使用unwrap_or_else传入1个闭包匿名函数,可以随心所欲的对原始错误进行处理,这里我们啥也没干,|e|e,表示原样返回。

    1.6K10发布于 2021-11-30
  • 来自专栏福大大架构师每日一题

    2022-11-05:给定一个逆波兰式,转化成正确的中序表达式。要求只有必要加括号的地方才加括号。

    if *part == "+" || *part == "-" || *part == "*" || *part == "/" { let right = stack.pop().unwrap (); let left = stack.pop().unwrap(); let mut ans: i32 = 0; if *part right; } stack.push(ans); } else { let a: i32 = part.parse().unwrap (); stack.push(a); } } // stack 只有一个数,最终的结果 return stack.pop().unwrap();}# (); let a = stack1.pop().unwrap(); let b_op = stack2.pop().unwrap();

    45510编辑于 2022-11-05
  • 来自专栏学点Rust

    Rust并发控制之Channel

    // 阻塞,等待t2打印结束 receiver2.recv().unwrap(); } } }); let t2 ("2 "); // t2打印完, 给t1 receiver2通知可以进行下一次打印 sender2.send(1).unwrap(); } } }); t1.join().unwrap(); t2.join().unwrap(); } sync_channel - mpsc , receiver.recv().unwrap()); println!("{:?}", receiver.recv().unwrap()); println!("{:?}" (); sender.send(2).unwrap(); sender.send(3).unwrap(); println!

    59610编辑于 2023-12-13
  • 来自专栏Rust语言学习交流

    【Rust日报】2021-01-09 GTK-RS Channel问题中的多线程处理

    let mut d = jpeg_decoder::Decoder::new(std::fs::File::open("/Users/jrmuizel/Desktop/DSCF2460.jpg").unwrap ()); let mut data = d.decode().unwrap(); let info = d.info().unwrap(); // Extract the profile after decode let profile = d.icc_profile().unwrap(); // Create a new qcms Profile let input = qcms::Profile::new_from_slice(&profile).unwrap(); let mut output = qcms::Profile::new_sRGB(); let xfm = qcms::Transform::new(&input, &output, qcms::DataType::RGB8, qcms::Intent::default()).unwrap

    65320发布于 2021-01-21
  • 来自专栏Rust语言学习交流

    TOKIO ASYNC&AWAIT 初探

    一句话 let socket = TcpStream::connect(&addr).await.unwrap(); 这里的await特性就是我们要的了,async wait,连接建立完了再继续. ; let pos = s.find("\r\n\r\n").unwrap_or(0); let (_, body) = s.split_at(pos); 3.1.4 完整的抓网页 //根据url, ("{}:443", domain.clone()); let addr = ip_port.to_socket_addrs().unwrap().next().unwrap(); let ; let pos = s.find("\r\n\r\n").unwrap_or(0); let (_, body) = s.split_at(pos); Ok(String:: ("ip_port={}", ip_port); let addr = ip_port.to_socket_addrs().unwrap().next().unwrap(); //

    1.6K20发布于 2019-12-17
  • 来自专栏菩提树下的杨过

    Rust: Tcp编程Demo

    Read, Write}}; fn main() { //绑定本机3000端口 let listener = TcpListener::bind("127.0.0.1:3000").unwrap 1k的缓存区 let mut buffer = [0;1024]; //读取client发过来的内容 stream.read(&mut buffer).unwrap (); //原样送回去(相当于netty的EchoServer) stream.write(&mut buffer).unwrap(); } } TcpClient (); //发送字符串 stream.write("hello,rust.欢迎使用Rust".as_bytes()).unwrap(); //创建1k的缓冲区,用于接收server ,str::from_utf8(&buffer).unwrap().trim_matches('\u{0}')); }

    98520编辑于 2021-12-28
  • 来自专栏菩提树下的杨过

    Rust:axum学习笔记(4) 上传文件

    ) -> Result<(StatusCode, HeaderMap), String> { if let Some(file) = multipart.next_field().await.unwrap () { //文件类型 let content_type = file.content_type().unwrap().to_string(); //校验是否为图片 SAVE_FILE_BASE_PATH, rnd, ext_name); //文件内容 let data = file.bytes().await.unwrap ("{}/{}", SAVE_FILE_BASE_PATH, id); (headers, read(&file_name).unwrap()) } /** * 重定向 */ async ("{}/{}", SAVE_FILE_BASE_PATH, id); (headers, read(&file_name).unwrap()) } /** * 重定向 */ async

    2.9K21编辑于 2022-04-27
  • 来自专栏福大大架构师每日一题

    2022-05-18:假设数组a和数组b为两组信号: 1) length(b) <= length(a); 2) 对于任意0<=i<length(b), 有b[

    cur.lock().unwrap().nexts.contains_key(&diff) { cur.lock() .unwrap ().nexts.get(&diff).unwrap()); cur = c2; } cur.lock().unwrap().indices.push cur.lock().unwrap().nexts.contains_key(&diff) { break; } let c2 = Arc::clone(&mut cur.lock().unwrap().nexts.get(&diff).unwrap()); cur = c2; for index in &cur.lock().unwrap().indices { ans[(*index) as usize] += 1;

    40820编辑于 2022-05-18
领券