- 博客(140)
- 资源 (4)
- 收藏
- 关注
原创 Matplotlib运行报错ValueError: object __array__ method not producing an array
我还依赖了tensorflow,tensorflow与numpy的版本也不适配,所以我更新的时候是将三个一起更新,pip会自动选择三个合适的版本进行更新。但是运行show的时候,就报错。原因是numpy和matplotlib版本不适配,需要重新更新下。更新之后,既不报错,pyplot也能展示图像了。
2024-10-11 12:30:22
1350
3
原创 竟然还有比rust官方库更高效第三方json库
对比了serde_json、rustc_serialize、simd-json,simd-json在几个场景下都是轻松超越。simd-json提供了一些高级用法和功能,以提高JSON解析和序列化的性能和灵活性。然后,我们可以使用该值的方法来获取JSON中的特定字段的值。在这个示例中,我们首先使用。函数将JSON数据解析为。我们再来看下它的一些高级功能。
2023-08-15 23:10:11
1021
原创 rust怎么做大型项目管理?学好cargo和mod是关键
一提到大型项目开发,大家都会以Java作为标准,为什么呢?一个是Java生态有很多以Maven为代表的成熟的项目管理工具,另一个是基于package的模块管理模式,提供了非常好的功能内聚和模块间解耦,而同样的rust也有类似的模块管理方式——cargo + mod。
2023-08-15 02:02:00
1206
原创 标准的rust后端项目的结构是怎样的呢?
库入口文件,如果项目需要作为库供其他项目使用,可以在此处定义库的公共接口。这只是一个示例项目结构,你可以根据自己的需求和项目规模进行调整和扩展。:数据模型的模块,通常包含定义和操作数据模型的结构体和方法。:处理请求的模块,通常包含处理不同路由和请求的处理器函数。:业务逻辑的模块,通常包含处理业务逻辑的服务函数。:实用工具的模块,通常包含通用的功能函数和工具类。:单元测试目录,用于编写针对单个模块或函数的测试。:项目的配置文件,其中包含项目的元数据和依赖项。:集成测试目录,用于编写测试整个应用程序的功能。
2023-08-15 02:01:25
1588
原创 函数与方法有区别?
总结而言,Rust中的方法是定义在结构体、枚举或trait实现中的函数,可以通过结构体或实例来调用。方法是在结构体或类型上定义的函数,它可以访问和操作该类型的属性和方法。方法可以看作是特定类型的函数,它与该类型的实例进行交互。函数是独立的代码块,而方法是与特定类型关联的函数,可以访问和操作该类型的属性和方法。同样的,在rust里,函数与方法也是有区别的。在main函数中,我们创建了一个Rectangle实例,并分别通过函数和方法来计算其面积。,它接受一个Rectangle类型的参数,并计算其面积。
2023-08-10 00:06:33
2720
原创 今天来学习rust里最热门的ORM数据库框架Diesel
Diesel是Rust语言中的一种ORM框架,用于简化与数据库的交互。首先,你需要在Cargo.toml文件中添加Diesel和相关数据库驱动的依赖项。如果是Mysql的话,那么引入以下依赖然后,在Rust代码中导入Diesel的宏和相关模块:接下来,你需要配置数据库连接。Diesel需要连接到数据库才能执行查询和操作。你可以使用方法创建一个与MySQL数据库的连接。你可以使用方法创建一个与PostgreSQL数据库的连接。如果使用其他数据库,可以选择相应的创建连接的方法。假设有一个名为。
2023-08-08 01:12:25
4468
原创 rust里如何快速实现一个LRU 本地缓存?
LRU算法的基本思想是,当缓存空间已满时,优先淘汰最近最少使用的数据,以保留最常用的数据。这只是一个简单的示例,实际的LRU本地缓存可能需要更多的功能和处理逻辑,例如缓存过期时间、并发访问处理等。函数中,如果缓存已满,则移除链表中最久未使用的键,并从缓存中移除;在计算机系统中,LRU算法常用于缓存系统、页面置换算法等场景,以提高数据访问的效率和性能。函数获取了一个缓存数据,并添加了一个新的缓存数据。函数中,如果缓存中存在指定的键,则将其移动到链表的末尾,并返回对应的值。函数中,我们创建了一个容量为2的。
2023-08-08 00:55:12
1478
原创 怪不得rust这么省内存,原来是有内存对齐
需要注意的是,Rust的内存布局和对齐规则可能会受到编译器、操作系统和目标平台的影响,因此具体的细节可能会有所不同。在编写涉及内存布局和对齐的代码时,建议使用标准库提供的函数和类型来确保正确性和可移植性。和其他语言一样,rust也需要对内存进行对齐,下面我们学习下rust是如何做的吧。通过了解内存布局和对齐的原则,我们可以更好地理解Rust中变量和数据结构在内存中的存储方式,并编写出更高效和可靠的代码。Rust使用了与C语言相似的内存布局和对齐规则,以确保数据的访问和操作是有效和可靠的。
2023-08-08 00:49:16
808
原创 rust里用了事半功倍的十个超热门代码库你都用过吗?
这些是Rust生态系统中的一些常用库和框架,每个库和框架都有其特定的用途和功能,大家可以根据自己的需求选择合适的库和框架来构建应用程序。Rust的生态系统中有很多常用的库和框架。
2023-08-08 00:25:48
2175
1
原创 没有synchronized,rust怎么防并发?
需要注意的是,在使用Mutex时,需要注意避免死锁和竞争条件。死锁可能发生在多个线程相互等待对方释放锁的情况下。然后,我们创建了多个线程,并在每个线程中对共享数据进行加锁、修改和解锁操作。这将会阻塞当前线程,直到锁可用。一旦获取到锁,我们就可以安全地修改共享数据。由于Mutex保证了对共享数据的安全访问,所以最终结果应该是正确的。Mutex是互斥锁的一种实现,用于保护共享数据在并发访问时的安全性。在解锁时,Mutex会自动释放锁,允许其他线程获取锁并访问共享数据。在上述代码中,我们首先创建了一个共享数据。
2023-08-08 00:16:56
1054
原创 20天学会rust(三)没有object的rust怎么面向对象?
面向对象我们都很熟悉,可以说它是一种软件开发最重要的编程范式之一,那么在Rust中如何面向对象编程呢?
2023-08-06 23:33:39
966
原创 用Rust实现23种设计模式之 享元模式
享元模式是一种结构型设计模式,它通过共享对象来减少内存使用和提高性能。在上述代码中,我们首先定义了享元接口Flyweight,并实现了具体享元ConcreteFlyweight。具体享元包含一个内部状态intrinsic_state,并实现了operation方法,其中打印了内部状态和外部状态。然后,我们定义了享元工厂FlyweightFactory,它维护了一个享元对象的集合。在get_flyweight方法中,如果已存在具有相同内部状态的享元对象,则返回该对象;
2023-08-06 10:31:53
220
原创 用Rust实现23种设计模式之 备忘录模式
备忘录模式是一种行为型设计模式,它允许在不暴露对象内部状态的情况下捕获和恢复对象的状态。在上述代码中,我们首先定义了备忘录对象Memento,它包含一个状态字段state。然后,我们定义了原发器对象Originator,它包含一个状态字段state,并提供了设置状态、创建备忘录和恢复状态的方法。接下来,我们定义了管理者对象Caretaker,它维护了一个备忘录对象的集合,并提供了添加备忘录和获取备忘录的方法。在main函数中,我们创建了原发器对象originator和管理者对象caretaker。
2023-08-06 10:31:25
169
原创 用Rust实现23种设计模式之 命令模式
命令模式是一种行为型设计模式,它将请求封装成一个对象,从而使得可以用不同的请求对客户端进行参数化。在上述代码中,我们首先定义了命令接口Command,并实现了具体命令ConcreteCommandA和ConcreteCommandB。这些具体命令包含一个请求接收者Receiver,并在execute方法中调用接收者的相应操作。然后,我们定义了请求接收者Receiver,它包含了实际的操作方法action_a和action_b。
2023-08-06 10:31:03
296
原创 20天学会rust(二)rust的基础语法篇
在Rust中,函数的定义使用fn关键字,后跟函数名称、参数列表和返回类型。函数体由一对花括号{}包围,用于包含实际的代码逻辑。sum }上述代码定义了一个名为add的函数,它接受两个i32类型的参数a和b,并返回一个i32类型的结果。函数体中计算了a和b的和,并将其作为函数的返回值。
2023-08-06 10:30:38
1506
原创 rust之String、str、&‘static str 与 FastStr使用详解
StringStringStringStringstrStringStringStringStringStringString请注意,fast_strcrate是一个第三方库,需要在Cargo.toml文件中添加依赖才能使用。
2023-08-06 10:30:13
1470
原创 用Rust实现23种设计模式之 外观模式
然后,我们定义了外观Facade,它包含子系统A和子系统B的实例。外观提供了一个统一的接口operation,其中调用了子系统A和子系统B的操作方法。通过外观模式,我们可以提供一个简化的接口来访问复杂的子系统,隐藏了子系统的复杂性,使得客户端代码更加简洁和易于使用。外观模式是一种结构型设计模式,它提供了一个统一的接口,用于访问子系统中的一组接口。在上述代码中,我们首先定义了子系统A和子系统B,它们分别实现了各自的操作方法。
2023-08-05 23:40:33
1482
原创 用Rust实现23种设计模式之 状态模式
状态模式是一种行为型设计模式,它允许对象在内部状态改变时改变其行为。在上述代码中,我们首先定义了状态接口State,并实现了具体状态ConcreteStateA和ConcreteStateB。每个具体状态都实现了handle方法,用于处理不同的状态。然后,我们定义了上下文对象Context,它包含一个状态对象state。在Context中,我们通过set_state方法可以动态地改变状态,通过request方法可以发起请求,具体的处理行为由当前状态对象来执行。
2023-08-05 23:39:37
263
原创 用Rust实现23种设计模式之 中介者模式
中介者模式是一种行为型设计模式,它通过引入一个中介者对象来协调多个对象之间的交互。中介者模式通过降低对象之间的直接耦合,提高了系统的可维护性和灵活性。在上述代码中,我们首先定义了中介者接口Mediator,并实现了具体中介者ConcreteMediator。具体中介者维护了一个同事对象的集合,并实现了notify方法,用于通知其他同事对象。然后,我们定义了同事接口Colleague,并实现了具体同事ConcreteColleagueA和ConcreteColleagueB。
2023-08-05 23:39:13
159
原创 用Rust实现23种设计模式之 访问者模式
访问者模式是一种行为型设计模式,它允许在不改变被访问对象的结构的情况下,定义对这些对象的新操作。在上述代码中,我们首先定义了被访问者接口Element,并实现了具体被访问者ConcreteElementA和ConcreteElementB。每个具体被访问者都实现了accept方法,用于接受访问者的访问。然后,我们定义了访问者接口Visitor,并实现了具体访问者ConcreteVisitor。具体访问者实现了visit_element_a和visit_element_b方法,用于访问不同的被访问者。
2023-08-05 23:38:46
169
原创 用Rust实现23种设计模式之 模板方法模式
模板方法模式是一种行为型设计模式,它定义了一个算法的骨架,将一些步骤的实现延迟到子类中。在上述代码中,我们首先定义了模板方法的抽象类AbstractClass,并定义了一个template_method方法,该方法定义了算法的骨架,其中包含了一些具体的步骤,这些步骤由子类实现。然后,我们创建了两个具体实现模板方法的子类ConcreteClassA和ConcreteClassB。这两个子类分别实现了AbstractClass中的具体步骤方法step1、step2和step3。
2023-08-05 23:37:47
426
原创 用Rust实现23种设计模式之 装饰者模式
通过装饰者模式,我们可以在运行时动态地向对象添加新的行为,同时又不改变其接口。装饰者模式是一种结构型设计模式,它允许动态地向对象添加新的行为,同时又不改变其接口。,并将组件对象传入。然后,我们调用装饰者对象的。这些具体装饰者包含一个组件对象,并在。具体组件表示被装饰的对象,实现了。方法,并在结果前后添加了额外的修饰。方法,并在结果前后添加了额外的修饰。函数中,我们创建了具体组件对象。方法,实际上调用了组件对象的。然后,我们定义了装饰者接口。方法中调用组件对象的。,并实现了具体装饰者。,以及具体装饰者对象。
2023-08-05 23:37:13
262
原创 用Rust实现23种设计模式之 观察者模式
观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,使得当一个对象的状态发生变化时,其所有依赖者都会收到通知并自动更新。在上述代码中,我们首先定义了观察者接口Observer,并实现了具体观察者ConcreteObserver。具体观察者包含一个名称字段,并实现了update方法,用于接收并处理被观察者发送的通知。然后,我们定义了被观察者接口Subject,并实现了具体被观察者ConcreteSubject。
2023-08-05 23:36:51
334
原创 用Rust实现23种设计模式之 迭代器模式
迭代器模式是一种行为型设计模式,它提供了一种顺序访问集合对象元素的方法,而无需暴露集合对象的内部表示。在上述代码中,我们首先定义了迭代器接口Iterator,并实现了具体迭代器ConcreteIterator。具体迭代器包含一个集合对象的引用和一个索引,实现了has_next方法用于判断是否还有下一个元素,以及next方法用于获取下一个元素。然后,我们定义了集合对象Collection,它包含一个字符串类型的items字段,并实现了create_iterator方法用于创建迭代器对象。
2023-08-05 23:36:24
140
原创 你知道rust里的茴香豆(字符串)有多少种写法吗?
rust作为一门强类型语言,除了基础类型,用的最多的就是字符串类型了,rust提供了多种方法:String、&str、&'static str和 FastStr。ok,用法相信大部分人都会,但是他们内存分配在堆上还是栈上呢? 谁的性能最好呢?
2023-08-05 17:19:03
258
原创 用Rust实现23种设计模式之 代理模式
代理模式是一种结构型设计模式,它允许通过代理对象来控制对真实对象的访问。在上述代码中,我们首先定义了共享接口Subject,并实现了具体对象RealSubject。RealSubject表示真实对象,实现了Subject接口的request方法。然后,我们定义了代理对象Proxy,它包含一个RealSubject对象作为其成员。Proxy实现了Subject接口的request方法,在方法中调用了RealSubject的request方法,并在调用前后执行了一些额外的操作。
2023-08-04 13:48:32
2053
原创 没有jsoup,rust怎么解析html呢?
它提供了一个简单的方式来发送 HTTP 请求并获取网页内容。标签、解析出指定 class 的元素以及解析出指定 id 的元素。在 Rust 中,你可以使用各种库来解析网页内容。库发送 HTTP GET 请求并获取网页内容。等库来解析 HTML 或 XML 格式的网页内容。库解析 HTML 内容。在这个示例中,我们使用。的其他用法,下面是三个使用。类的示例,分别用于解析出。首先,将以下内容添加到你的。元素,并提取其文本内容。在这个示例中,我们使用。
2023-08-04 13:46:25
2113
原创 没有fastjson,rust怎么方便的解析提取复杂json呢?
方法将提取的值转换为你期望的类型,如字符串、整数等。在 Rust 中解析和提取复杂的 JSON 结构,你可以使用。方法来简化代码,但在实际应用中,你可能需要处理错误情况。提供了一组功能强大的方法来解析和操作 JSON 数据。在这个示例中,我们首先将 JSON 字符串解析为。来提取特定字段的值。
2023-08-04 13:45:56
2005
原创 没有jodatime,rust里怎么将字符串转为日期呢?
/ 时间转字符串 let datetime: DateTime < Utc > = Utc::now();// 字符串转时间 let datetime_str = "2022-01-01 12:00:00";println!("时间转字符串:{}" , datetime_str);println!("字符串转时间:{}" , datetime);
2023-08-04 13:45:25
1704
SecureCRT注册码生成工具
2016-01-14
动态切换Datasource
2015-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人