Rust vs Go:常用语法对比(十二)

news2024/11/23 21:52:22
alt

题图来自 Rust vs Go in 2023[1]


221. Remove all non-digits characters

Create string t from string s, keeping only digit characters 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

删除所有非数字字符

package main

import (
 "fmt"
 "regexp"
)

func main() {
 s := `height="168px"`

 re := regexp.MustCompile("[^\\d]")
 t := re.ReplaceAllLiteralString(s, "")

 fmt.Println(t)
}

168


fn main() {
    let t: String = "Today is the 14th of July"
        .chars()
        .filter(|c| c.is_digit(10))
        .collect();

    dbg!(t);
}

[src/main.rs:7] t = "14"


222. Find first index of an element in list

Set i to the first index in list items at which the element x can be found, or -1 if items does not contain x.

在列表中查找元素的第一个索引

package main

import (
 "fmt"
)

func main() {
 items := []string{"huey""dewey""louie"}
 x := "dewey"

 i := -1
 for j, e := range items {
  if e == x {
   i = j
   break
  }
 }

 fmt.Printf("Found %q at position %d in %q", x, i, items)
}

Found "dewey" at position 1 in ["huey" "dewey" "louie"]


fn main() {
    let items = ['A', '🎂', '㍗'];
    let x = '💩';

    match items.iter().position(|y| *y == x) {
        Some(i) => println!("Found {} at position {}.", x, i),
        None => println!("There is no {} in the list.", x),
    }
}

There is no 💩 in the list.

or

fn main() {
    let items = [42, -312];

    {
        let x = 12;

        let i = items.iter().position(|y| *y == x).map_or(-1, |n| n as i32);

        println!("{} => {}", x, i)
    }

    {
        let x = 13;

        let i = items.iter().position(|y| *y == x).map_or(-1, |n| n as i32);

        println!("{} => {}", x, i)
    }
}

12 => 2
13 => -1

223. for else loop

Loop through list items checking a condition. Do something else if no matches are found.
A typical use case is looping through a series of containers looking for one that matches a condition. If found, an item is inserted; otherwise, a new container is created.
These are mostly used as an inner nested loop, and in a location where refactoring inner logic into a separate function reduces clarity.

for else循环

package main

import (
 "fmt"
)

func main() {
 items := []string{"foo""bar""baz""qux"}

 for _, item := range items {
  if item == "baz" {
   fmt.Println("found it")
   goto forelse
  }
 }
 {
  fmt.Println("never found it")
 }
        forelse:
}

found it


fn main() {
    let items: &[&str] = &["foo""bar""baz""qux"];

    let mut found = false;
    for item in items {
        if item == &"baz" {
            println!("found it");
            found = true;
            break;
        }
    }
    if !found {
        println!("never found it");
    }
}

found it

or

fn main() {
     let items: &[&str] = &["foo""bar""baz""qux"];

    if let None = items.iter().find(|&&item| item == "rockstar programmer") {
        println!("NotFound");
    };
}

NotFound

or

fn main() {
    let items: &[&str] = &["foo""bar""baz""qux"];

    items
        .iter()
        .find(|&&item| item == "rockstar programmer")
        .or_else(|| {
            println!("NotFound");
            Some(&"rockstar programmer")
        });
}

NotFound


224. Add element to the beginning of the list

Insert element x at the beginning of list items.

将元素添加到列表的开头

package main

import (
 "fmt"
)

type T int

func main() {
 items := []T{421337}
 var x T = 7
 
 items = append([]T{x}, items...)

 fmt.Println(items)
}

[7 42 1337]

or

package main

import (
 "fmt"
)

type T int

func main() {
 items := []T{421337}
 var x T = 7

 items = append(items, x)
 copy(items[1:], items)
 items[0] = x

 fmt.Println(items)
}

[7 42 1337]


use std::collections::VecDeque;

fn main() {
    let mut items = VecDeque::new();
    items.push_back(22);
    items.push_back(33);
    let x = 11;

    items.push_front(x);

    println!("{:?}", items);
}

[11, 22, 33]


225. Declare and use an optional argument

Declare an optional integer argument x to procedure f, printing out "Present" and its value if it is present, "Not present" otherwise

声明并使用可选参数

package main

func f(x ...int) {
 if len(x) > 0 {
  println("Present", x[0])
 } else {
  println("Not present")
 }
}

func main() {
 f()
 f(1)
}

Go does not have optional arguments, but to some extend, they can be mimicked with a variadic parameter. x is a variadic parameter, which must be the last parameter for the function f. Strictly speaking, x is a list of integers, which might have more than one element. These additional elements are ignored.

Not present
Present 1

fn f(x: Option<()>) {
    match x {
        Some(x) => println!("Present {}", x),
        None => println!("Not present"),
    }
}

226. Delete last element from list

Remove the last element from list items.

从列表中删除最后一个元素

package main

import (
 "fmt"
)

func main() {
 items := []string{"banana""apple""kiwi"}
 fmt.Println(items)

 items = items[:len(items)-1]
 fmt.Println(items)
}
[banana apple kiwi]
[banana apple]

fn main() {
    let mut items = vec![112233];

    items.pop();

    println!("{:?}", items);
}

[11, 22]


227. Copy list

Create new list y containing the same elements as list x.
Subsequent modifications of y must not affect x (except for the contents referenced by the elements themselves if they contain pointers).

复制列表

package main

import (
 "fmt"
)

func main() {
 type T string
 x := []T{"Never""gonna""shower"}

 y := make([]T, len(x))
 copy(y, x)

 y[2] = "give"
 y = append(y, "you""up")

 fmt.Println(x)
 fmt.Println(y)
}

[Never gonna shower]
[Never gonna give you up]

fn main() {
    let mut x = vec![432];

    let y = x.clone();

    x[0] = 99;
    println!("x is {:?}", x);
    println!("y is {:?}", y);
}
x is [9932]
y is [432]

228. Copy a file

Copy the file at path src to dst.

复制文件

package main

import (
 "fmt"
 "io/ioutil"
 "log"
 "os"
)

func main() {
 src, dst := "/tmp/file1""/tmp/file2"

 err := copy(dst, src)
 if err != nil {
  log.Fatalln(err)
 }

 stat, err := os.Stat(dst)
 if err != nil {
  log.Fatalln(err)
 }
 fmt.Println(dst, "exists, it has size", stat.Size(), "and mode", stat.Mode())
}

func copy(dst, src string) error {
 data, err := ioutil.ReadFile(src)
 if err != nil {
  return err
 }
 stat, err := os.Stat(src)
 if err != nil {
  return err
 }
 return ioutil.WriteFile(dst, data, stat.Mode())
}

func init() {
 data := []byte("Hello")
 err := ioutil.WriteFile("/tmp/file1", data, 0644)
 if err != nil {
  log.Fatalln(err)
 }
}

/tmp/file2 exists, it has size 5 and mode -rw-r--r--

or

package main

import (
 "fmt"
 "io/ioutil"
 "log"
 "os"
)

func main() {
 src, dst := "/tmp/file1""/tmp/file2"

 err := copy(dst, src)
 if err != nil {
  log.Fatalln(err)
 }

 stat, err := os.Stat(dst)
 if err != nil {
  log.Fatalln(err)
 }
 fmt.Println(dst, "exists, it has size", stat.Size(), "and mode", stat.Mode())
}

func copy(dst, src string) error {
 data, err := ioutil.ReadFile(src)
 if err != nil {
  return err
 }
 stat, err := os.Stat(src)
 if err != nil {
  return err
 }
 err = ioutil.WriteFile(dst, data, stat.Mode())
 if err != nil {
  return err
 }
 return os.Chmod(dst, stat.Mode())
}

func init() {
 data := []byte("Hello")
 err := ioutil.WriteFile("/tmp/file1", data, 0777)
 if err != nil {
  log.Fatalln(err)
 }
 err = os.Chmod("/tmp/file1"0777)
 if err != nil {
  log.Fatalln(err)
 }
}

/tmp/file2 exists, it has size 5 and mode -rwxrwxrwx

or

package main

import (
 "fmt"
 "io"
 "io/ioutil"
 "log"
 "os"
)

func main() {
 src, dst := "/tmp/file1""/tmp/file2"

 err := copy(dst, src)
 if err != nil {
  log.Fatalln(err)
 }

 stat, err := os.Stat(dst)
 if err != nil {
  log.Fatalln(err)
 }
 fmt.Println(dst, "exists, it has size", stat.Size(), "and mode", stat.Mode())
}

func copy(dst, src string) error {
 f, err := os.Open(src)
 if err != nil {
  return err
 }
 defer f.Close()
 stat, err := f.Stat()
 if err != nil {
  return err
 }
 g, err := os.OpenFile(dst, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, stat.Mode())
 if err != nil {
  return err
 }
 defer g.Close()
 _, err = io.Copy(g, f)
 if err != nil {
  return err
 }
 return os.Chmod(dst, stat.Mode())
}

func init() {
 data := []byte("Hello")
 err := ioutil.WriteFile("/tmp/file1", data, 0777)
 if err != nil {
  log.Fatalln(err)
 }
 err = os.Chmod("/tmp/file1"0777)
 if err != nil {
  log.Fatalln(err)
 }
}

/tmp/file2 exists, it has size 5 and mode -rwxrwxrwx


use std::fs;

fn main() {
    let src = "/etc/fstabZ";
    let dst = "fstab.bck";

    let r = fs::copy(src, dst);

    match r {
        Ok(v) => println!("Copied {:?} bytes", v),
        Err(e) => println!("error copying {:?} to {:?}: {:?}", src, dst, e),
    }
}

error copying "/etc/fstabZ" to "fstab.bck": Os { code: 2, kind: NotFound, message: "No such file or directory" }


231. Test if bytes are a valid UTF-8 string

Set b to true if the byte sequence s consists entirely of valid UTF-8 character code points, false otherwise.

测试字节是否是有效的UTF-8字符串

package main

import (
 "fmt"
 "unicode/utf8"
)

func main() {
 {
  s := []byte("Hello, 世界")
  b := utf8.Valid(s)
  fmt.Println(b)
 }
 {
  s := []byte{0xff0xfe0xfd}
  b := utf8.Valid(s)
  fmt.Println(b)
 }
}

true
false

fn main() {
    {
        let bytes = [0xc30x810x720x760xc30xad0x7a];

        let b = std::str::from_utf8(&bytes).is_ok();
        println!("{}", b);
    }

    {
        let bytes = [0xc30x810x810x760xc30xad0x7a];

        let b = std::str::from_utf8(&bytes).is_ok();
        println!("{}", b);
    }
}

true
false

234. Encode bytes to base64

Assign to string s the standard base64 encoding of the byte array data, as specified by RFC 4648.

将字节编码为base64

package main

import (
 "encoding/base64"
 "fmt"
)

func main() {
 data := []byte("Hello world")
 s := base64.StdEncoding.EncodeToString(data)
 fmt.Println(s)
}

SGVsbG8gd29ybGQ=


//use base64;

fn main() {
    let d = "Hello, World!";

    let b64txt = base64::encode(d);
    println!("{}", b64txt);
}

SGVsbG8sIFdvcmxkIQ==


235. Decode base64

Assign to byte array data the bytes represented by the base64 string s, as specified by RFC 4648.

解码base64

package main

import (
 "encoding/base64"
 "fmt"
)

func main() {
 str := "SGVsbG8gd29ybGQ="

 data, err := base64.StdEncoding.DecodeString(str)
 if err != nil {
  fmt.Println("error:", err)
  return
 }

 fmt.Printf("%q\n", data)
}

"Hello world"


//use base64;

fn main() {
    let d = "SGVsbG8sIFdvcmxkIQ==";

    let bytes = base64::decode(d).unwrap();
    println!("Hex: {:x?}", bytes);
    println!("Txt: {}", std::str::from_utf8(&bytes).unwrap());
}

Hex: [48656c, 6c, 6f, 2c, 20576f, 726c, 6421]
Txt: Hello, World!

237. Xor integers

Assign to c the result of (a xor b)

异或运算

异或整数

package main

import (
 "fmt"
)

func main() {
 a, b := 23042
 c := a ^ b

 fmt.Printf("a is %12b\n", a)
 fmt.Printf("b is %12b\n", b)
 fmt.Printf("c is %12b\n", c)
 fmt.Println("c ==", c)
}

a is     11100110
b is       101010
c is     11001100
c == 204

or

package main

import (
 "fmt"
 "math/big"
)

func main() {
 a, b := big.NewInt(230), big.NewInt(42)
 c := new(big.Int)
 c.Xor(a, b)

 fmt.Printf("a is %12b\n", a)
 fmt.Printf("b is %12b\n", b)
 fmt.Printf("c is %12b\n", c)
 fmt.Println("c ==", c)
}
a is     11100110
b is       101010
c is     11001100
c == 204

fn main() {
    let a = 230;
    let b = 42;
    let c = a ^ b;

    println!("{}", c);
}

204


238. Xor byte arrays

Write in a new byte array c the xor result of byte arrays a and b.
a and b have the same size.

异或字节数组

package main

import (
 "fmt"
)

func main() {
 a, b := []byte("Hello"), []byte("world")

 c := make([]bytelen(a))
 for i := range a {
  c[i] = a[i] ^ b[i]
 }

 fmt.Printf("a is %08b\n", a)
 fmt.Printf("b is %08b\n", b)
 fmt.Printf("c is %08b\n", c)
 fmt.Println("c ==", c)
 fmt.Printf("c as string would be %q\n"string(c))
}

a is [01001000 01100101 01101100 01101100 01101111]
b is [01110111 01101111 01110010 01101100 01100100]
c is [00111111 00001010 00011110 00000000 00001011]
c == [63 10 30 0 11]
c as string would be "?\n\x1e\x00\v"

or

package main

import (
 "fmt"
)

type T [5]byte

func main() {
 var a, b T
 copy(a[:], "Hello")
 copy(b[:], "world")

 var c T
 for i := range a {
  c[i] = a[i] ^ b[i]
 }

 fmt.Printf("a is %08b\n", a)
 fmt.Printf("b is %08b\n", b)
 fmt.Printf("c is %08b\n", c)
 fmt.Println("c ==", c)
 fmt.Printf("c as string would be %q\n"string(c[:]))
}
a is [01001000 01100101 01101100 01101100 01101111]
b is [01110111 01101111 01110010 01101100 01100100]
c is [00111111 00001010 00011110 00000000 00001011]
c == [63 10 30 0 11]
c as string would be "?\n\x1e\x00\v"

fn main() {
    let a: &[u8] = "Hello".as_bytes();
    let b: &[u8] = "world".as_bytes();

    let c: Vec<_> = a.iter().zip(b).map(|(x, y)| x ^ y).collect();

    println!("{:?}", c);
}

[63, 10, 30, 0, 11]


239. Find first regular expression match

Assign to string x the first word of string s consisting of exactly 3 digits, or the empty string if no such match exists.
A word containing more digits, or 3 digits as a substring fragment, must not match.

查找第一个正则表达式匹配项

package main

import (
 "fmt"
 "regexp"
)

func main() {
 re := regexp.MustCompile(`\b\d\d\d\b`)
 for _, s := range []string{
  "",
  "12",
  "123",
  "1234",
  "I have 12 goats, 3988 otters, 224 shrimps and 456 giraffes",
  "See p.456, for word boundaries",
 } {
  x := re.FindString(s)
  fmt.Printf("%q -> %q\n", s, x)
 }
}
"" -> ""
"12" -> ""
"123" -> "123"
"1234" -> ""
"I have 12 goats, 3988 otters, 224 shrimps and 456 giraffes" -> "224"
"See p.456, for word boundaries" -> "456"

use regex::Regex;

fn main() {
    let sentences = vec![
        "",
        "12",
        "123",
        "1234",
        "I have 12 goats, 3988 otters, 224 shrimps and 456 giraffes",
        "See p.456, for word boundaries",
    ];
    for s in sentences {
        let re = Regex::new(r"\b\d\d\d\b").expect("failed to compile regex");
        let x = re.find(s).map(|x| x.as_str()).unwrap_or("");
        println!("[{}] -> [{}]", &s, &x);
    }
}

[] -> []
[12] -> []
[123] -> [123]
[1234] -> []
[I have 12 goats, 3988 otters, 224 shrimps and 456 giraffes] -> [224]
[See p.456for word boundaries] -> [456]

240. Sort 2 lists together

Lists a and b have the same length. Apply the same permutation to a and b to have them sorted based on the values of a.

将两个列表排序在一起.列表a和b的长度相同。对a和b应用相同的排列,根据a的值对它们进行排序。

package main

import (
 "fmt"
 "sort"
)

type K int
type T string

type sorter struct {
 k []K
 t []T
}

func (s *sorter) Len() int {
 return len(s.k)
}

func (s *sorter) Swap(i, j int) {
 // Swap affects 2 slices at once.
 s.k[i], s.k[j] = s.k[j], s.k[i]
 s.t[i], s.t[j] = s.t[j], s.t[i]
}

func (s *sorter) Less(i, j int) bool {
 return s.k[i] < s.k[j]
}

func main() {
 a := []K{9348}
 b := []T{"nine""three""four""eight"}

 sort.Sort(&sorter{
  k: a,
  t: b,
 })

 fmt.Println(a)
 fmt.Println(b)
}

[3 4 8 9]
[three four eight nine]

fn main() {
    let a = vec![30204010];
    let b = vec![101102103104];

    let mut tmp: Vec<_> = a.iter().zip(b).collect();
    tmp.as_mut_slice().sort_by_key(|(&x, _y)| x);
    let (aa, bb): (Vec<i32>, Vec<i32>) = tmp.into_iter().unzip();

    println!("{:?}, {:?}", aa, bb);
}

[10, 20, 30, 40], [104, 102, 101, 103]


参考资料

[1]

Rust vs Go in 2023: https://bitfieldconsulting.com/golang/rust-vs-go

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/792306.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

07 |「注解、反射、多线程、锁」

前言 函数 文章目录 前言一、注解二、反射1、作用 三、多线程1、基本概念2、实现方式1&#xff09;继承 Thread 类2&#xff09;实现Runnable接口3、常用 API 四、锁1、为什么2、锁 一、注解 注解不影响程序逻辑&#xff0c;但会被编译器在不同阶段&#xff08;编译、执行&…

【小白必看】利用Python生成个性化名单Word文档

文章目录 前言所需文件及文件格式说明excel数据如下word 模板如下文件目录格式及生成后的文件 导入所需的模块&#xff1a;打开 Excel 文件&#xff1a;选择工作表&#xff1a;获取数据列表&#xff1a;遍历数据并生成 Word 文档&#xff1a;完整代码结束语 前言 对于需要批量…

【Python机器学习】实验03 logstic回归

文章目录 简单分类模型 - 逻辑回归1.1 准备数据1.2 定义假设函数Sigmoid 函数 1.3 定义代价函数1.4 定义梯度下降算法gradient descent(梯度下降) 1.5 绘制决策边界1.6 计算准确率1.7 试试用Sklearn来解决2.1 准备数据(试试第二个例子)2.2 假设函数与前h相同2.3 代价函数与前相…

找不到vcruntime140_1.dll,无法继续执行此代码如何解决

最近我在使用电脑时遇到了一个问题&#xff0c;即出现了vcruntime140_1.dll文件丢失的错误提示。这让我感到非常困惑和烦恼&#xff0c;因为我无法正常运行一些软件和游戏。 vcruntime140_1.dll是一个Windows系统文件&#xff0c;它是Microsoft Visual C Redistributable的一部…

maven本地仓库地址修改+maven国内镜像设置+maven运行所需pos.xml文件配置基本写法

1&#xff0c;maven本地仓库地址修改 maven在使用过程中&#xff0c;本地项目仓库其空间占用会越来越大&#xff0c;但是其默认仓库位置往往是以C盘为主&#xff0c;C盘作为系统盘常常会遇到所在盘空间占满的情况&#xff0c;所以我们将其改至其他硬盘空间位置为适合做法&#…

Vue style中的 scoped 属性

Vue 中存在 scoped 属性&#xff0c;HTML5中也存在一个 scoped 属性&#xff0c;而且&#xff0c;这两者都是针对 css 样式处理的属性&#xff0c;所以很多文章在 解释 Vue scoped 的时候&#xff0c;都会把两者混为一谈&#xff0c;直接进把 HTML5 scoped 的定义搬到 Vue scop…

TikTok带货成功的关键:用户参与与互动

TikTok作为一个社交媒体平台&#xff0c;其带货成功的关键之一是用户参与和互动。在这篇文章中&#xff0c;我们将探讨如何通过激发用户参与和互动&#xff0c;提高TikTok带货的效果。 首先&#xff0c;创造互动性的内容是吸引用户参与的重要因素。在带货视频中&#xff0c;可…

Redis学习路线(1)—— Redis的安装

一、NoSQL SQL VS NoSQL 1、名称 SQL 主要是指关系数据库。NoSQL 主要是指非关系数据库。 2、存储结构 SQL 是结构化的数据库&#xff0c;以表格的形式存储数据。NoSQL 是非结构化的数据库&#xff0c;以Key-Value&#xff08;Redis&#xff09;&#xff0c;JSON格式文档&…

Linux系统安装Mysql二进制文件

&#x1f4bb;前言 为了简化安装和配置过程&#xff0c;许多Linux发行版提供了预编译的二进制MySQL安装包&#xff0c;这些安装包已经经过测试和验证&#xff0c;可以在大多数Linux系统上正常工作。通过安装这些二进制MySQL安装包&#xff0c;可以省去从源代码编译和安装的繁琐…

mysql通过binlog恢复数据

开启binlog 在my.ini中添加以下两行代码&#xff1a; log-binmysql-bin server-id1 注意要写在[mysqld]范围内才会生效 查看binlog存放日志文件目录 show variables like %datadir%; 查看binlog文件名 show master logs; 将binlog转换成sql mysqlbinlog --no-defaults …

个性化-强连接-更智能 伙伴云5大扩展功能详解

伙伴云【小伙开麦】直播间「“伙”速上新」栏目上线&#xff0c;由产品经理讲解产品伙伴云5大功能模块&#xff0c;旨在让业务流程更加清晰、让用户使用操作更加便捷、让业绩转化更高效、让生态连接更顺畅…… 在不断的技术创新过程中&#xff0c;进一步助力数字化转型&#x…

CAN bus off ——ISO11898

什么是can bus off&#xff1f; CAN总线关闭&#xff08;CAN bus off&#xff09;是指CAN节点进入一种错误状态&#xff0c;无法继续正常的数据通信。当一个CAN节点的错误计数器超过了设定的阈值时&#xff0c;该节点将进入CAN总线关闭状态。在这种状态下&#xff0c;该节点将停…

opencv-24 图像几何变换03-仿射-cv2.warpAffine()

什么是仿射&#xff1f; 仿射变换是指图像可以通过一系列的几何变换来实现平移、旋转等多种操作。该变换能够 保持图像的平直性和平行性。平直性是指图像经过仿射变换后&#xff0c;直线仍然是直线&#xff1b;平行性是指 图像在完成仿射变换后&#xff0c;平行线仍然是平行线。…

Android 耗时分析(adb shell/Studio CPU Profiler/插桩Trace API)

1.adb logcat 查看冷启动时间和Activity显示时间&#xff1a; 过滤Displayed关键字&#xff0c;可看到Activity的显示时间 那上面display后面的是时间是指包含哪些过程的时间呢&#xff1f; 模拟在Application中沉睡1秒操作&#xff0c;冷启动情况下&#xff1a; 从上可知&…

Python小练习实践

在交互模式下&#xff0c;可以不写print&#xff1b;默认调用 print(repr(a)) 文件模式&#xff0c;必须写print。 If语句 Input语句&#xff0c;返回的是字符串 len()&#xff0c;长度 小练习&#xff1a; 输入一个自己的生日月份 写个if 和else 判断一下当月是否是你的生日…

celery----异步发送短信

1.目录结构 -celery.py --------必须叫这个名字 放定时任务、里面实例化得到app对象 -home_task.py和user_task.py. ----------就是针对不同app的任务文件 2.各文件的内容 celery.py from datetime import timedeltafrom celery import Celery from celery.schedu…

PLL设计-仿真

线性相位裕锁相环模型 out都代表噪声&#xff0c;PFDCP的gain是Icp/2π&#xff0c;LF的传输函数是,VCO传输函数是,分频器增益是1/N 首先不考虑噪声模型 阶跃响应-查看建立时间&#xff0c;下面两条线是上面两条线减1V后的结果&#xff0c;方便查看。 放大上图&#xff0c;输入…

支持向量机(SVM)---代码实现

# coding: utf-8## 感知器模型流程 """1.初始化w, b2.遍历所有训练数据集中选出的误分类点&#xff1a;2.1.如果y ! sign(wxb) 或者 y*(wxb) < 0 则为误分类点2.2 根据误分类点计算&#xff1a;w_new w_old -alpha * 对w的梯度&#xff0c; b_new b_old - …

共聚焦显微镜在光学膜片表面微结构测量中的应用

在当前的液晶显示器行业&#xff0c;TFT液晶面板因其显示反应速度更快更适用于动画及显像显示的特点而得到广泛应用。作为配套组件的背光显示模组&#xff0c;为其供应充足且分布均匀的光源亮度&#xff0c;使得液晶面板的显像功能能够正常工作。液晶面板消费需求的不断增长带动…

【vue3】获取字典数据,封装为公共方法

前言: 后台项目中基本上都有字典管理页面,Vue封装字典数据的主要目的是为了方便数据的管理和使用 不管在哪个页面使用下拉框,el-select的options数据源需要通过调用接口获取到,不同的数据源调用不同的接口,引入和使用都是不小的工作量,如果使用字典数据管理,不管同个页…