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

    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

    94230编辑于 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来返回一个闭包的结果

    93410编辑于 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 安全的概念和一套新的类型和特质

    62240编辑于 2022-11-28
  • 来自专栏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

    99140发布于 2021-09-08
  • 来自专栏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的实现原理,重要的不是结论,而是亲身经历,受益匪浅。

    95120发布于 2019-01-29
  • 来自专栏Rust

    Rust 编程陷阱:unwrap() 的 Panic 危机与 ? 操作符的错误智慧

    unwrap():看似方便的潘多拉魔盒 什么是 unwrap()? unwrap() 是 Rust 中 Option<T> 和 Result<T, E> 类型的方法,用于提取内部值。 = some_value.unwrap(); // ✓ 安全,返回 42 let none_value: Option<i32> = None; let value = none_value.unwrap 程序崩溃 // Result<T, E> 的 unwrap() let ok_result: Result<i32, &str> = Ok(42); let value = ok_result.unwrap 错误信息包含在 panic 中 unwrap() 的致命陷阱 1. ; // 这里忘记处理错误,调用 unwrap() let user_id = input.parse::<u64>().unwrap(); // 潜在的 panic

    11910编辑于 2026-04-23
  • 来自专栏福大大架构师每日一题

    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!

    43520编辑于 2022-05-23
  • 来自专栏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(); }

    59130编辑于 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!

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

    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!

    59210编辑于 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!

    25810编辑于 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!

    49050发布于 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();

    46410编辑于 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!

    63610编辑于 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

    67020发布于 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操作MySQL

    (); // 获取连接池 let mut conn = pool.get_conn().unwrap();// 获取链接 conn.query_iter("select * from student") .unwrap() .for_each(|row| { let r: (i32, String, i32, String, NaiveDate) = from_row(row.unwrap()); println! (); // 获取连接池 let mut conn = pool.get_conn().unwrap();// 获取链接 // 输出到Vec let res: Vec<(i32, String, i32, String, NaiveDate)> = conn.query("select * from student").unwrap(); for r in

    1K20编辑于 2023-09-05
  • 来自专栏随意记录

    Rust 组合器汇总

    (x.unwrap(), "air"); // fails 2.2 返回另外一个值 2.2.1 unwrap_or 有值,返回值;否则返回一个默认值。 (Some("car").unwrap_or("bike"), "car"); assert_eq!(None.unwrap_or("bike"), "bike"); assert_eq! (None.unwrap_or(2), 2); 2.2.2 unwrap_or_else 有值,返回值;否则,执行闭包。 ("error")); err.unwrap(); // fails 3.2 返回另外一个值 3.2.1 unwrap_or_default 正确,返回值;否则,返回默认值。 (err.unwrap_or("other"), "other"); 3.2.3 unwrap_or_else 正确,返回值;否则,执行闭包。

    1.3K80编辑于 2021-12-06
领券