婚纱网站怎么做临淄区最新招聘信息

news/2025/10/6 12:05:22/文章来源:
婚纱网站怎么做,临淄区最新招聘信息,网站建设的目地,中英语网站制作方法grpc 与 protobuf grpc 使用的是 protobuf 协议#xff0c;其是一个通用的 rpc 框架#xff0c;基本支持主流的所有语言、其底层使用 http/2 进行网络通信#xff0c;具有较高的效率 protobuf 是一种序列化格式#xff0c;这种格式具有 序列化以及解码速度快#xff08;…grpc 与 protobuf grpc 使用的是 protobuf 协议其是一个通用的 rpc 框架基本支持主流的所有语言、其底层使用 http/2 进行网络通信具有较高的效率 protobuf 是一种序列化格式这种格式具有 序列化以及解码速度快对比json、xml 速度快 2 - 100 倍压缩率高等优点是一个性能炸弹 基础环境配置 我们使用之前要先安装 protobuf 的相关环境 在 github 上下载 protoc 并配置好环境变量环境变量配置到 bin 这一级用来生成源码 记得在编译器中安装 protobuf support 插件 protobuf尝试 对 protobuf 进行尝试创建一个.proto 文件 syntax proto3;message HelloRequest {string name 1; // 注意这里不是赋值而是指定编号 }之后使用 protoc 生成源码 protoc -I . --go_out. --go-grpc_outrequire_unimplemented_serversfalse:. ./helloworld.proto测试proto的使用 func main() {req : HelloWorld.HelloRequest{Name: Chen,Age: 16,Courses: []string{C, Go},}rsp, _ : proto.Marshal(req) // 编码newReq : HelloWorld.HelloRequest{} // 创建一个空的proto_ proto.Unmarshal(rsp, newReq) // 解码解码存储在 newReq 中fmt.Println(newReq.Name, newReq.Age, newReq.Courses) }实际开发尝试 创建目录结构 grpc_test server server.go client proto helloworld.proto helloworld.pb.go自动生成 helloworld_grpc.pb.go自动生成 首先自己编写 helloworld.proto syntax proto3; // 生成的包名 option go_package .;proto;// 标注生成的方法接口 service Greeter {rpc SayHello (HelloRequest) returns (HelloReply); }// 生成的结构体 message HelloRequest {string name 1; }message HelloReply {string message 1; }之后使用命令 protoc -I . --go_out. --go-grpc_outrequire_unimplemented_serversfalse:. ./helloworld.proto生成helloworld.pb.go 文件 // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 // protoc v4.25.3 // source: helloworld.protopackage protoimport (protoreflect google.golang.org/protobuf/reflect/protoreflectprotoimpl google.golang.org/protobuf/runtime/protoimplreflect reflectsync sync )const (// Verify that this generated code is sufficiently up-to-date._ protoimpl.EnforceVersion(20 - protoimpl.MinVersion)// Verify that runtime/protoimpl is sufficiently up-to-date._ protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) )type HelloRequest struct {state protoimpl.MessageStatesizeCache protoimpl.SizeCacheunknownFields protoimpl.UnknownFieldsName string protobuf:bytes,1,opt,namename,proto3 json:name,omitempty }func (x *HelloRequest) Reset() {*x HelloRequest{}if protoimpl.UnsafeEnabled {mi : file_helloworld_proto_msgTypes[0]ms : protoimpl.X.MessageStateOf(protoimpl.Pointer(x))ms.StoreMessageInfo(mi)} }func (x *HelloRequest) String() string {return protoimpl.X.MessageStringOf(x) }func (*HelloRequest) ProtoMessage() {}func (x *HelloRequest) ProtoReflect() protoreflect.Message {mi : file_helloworld_proto_msgTypes[0]if protoimpl.UnsafeEnabled x ! nil {ms : protoimpl.X.MessageStateOf(protoimpl.Pointer(x))if ms.LoadMessageInfo() nil {ms.StoreMessageInfo(mi)}return ms}return mi.MessageOf(x) }// Deprecated: Use HelloRequest.ProtoReflect.Descriptor instead. func (*HelloRequest) Descriptor() ([]byte, []int) {return file_helloworld_proto_rawDescGZIP(), []int{0} }func (x *HelloRequest) GetName() string {if x ! nil {return x.Name}return }type HelloReply struct {state protoimpl.MessageStatesizeCache protoimpl.SizeCacheunknownFields protoimpl.UnknownFieldsMessage string protobuf:bytes,1,opt,namemessage,proto3 json:message,omitempty }func (x *HelloReply) Reset() {*x HelloReply{}if protoimpl.UnsafeEnabled {mi : file_helloworld_proto_msgTypes[1]ms : protoimpl.X.MessageStateOf(protoimpl.Pointer(x))ms.StoreMessageInfo(mi)} }func (x *HelloReply) String() string {return protoimpl.X.MessageStringOf(x) }func (*HelloReply) ProtoMessage() {}func (x *HelloReply) ProtoReflect() protoreflect.Message {mi : file_helloworld_proto_msgTypes[1]if protoimpl.UnsafeEnabled x ! nil {ms : protoimpl.X.MessageStateOf(protoimpl.Pointer(x))if ms.LoadMessageInfo() nil {ms.StoreMessageInfo(mi)}return ms}return mi.MessageOf(x) }// Deprecated: Use HelloReply.ProtoReflect.Descriptor instead. func (*HelloReply) Descriptor() ([]byte, []int) {return file_helloworld_proto_rawDescGZIP(), []int{1} }func (x *HelloReply) GetMessage() string {if x ! nil {return x.Message}return }var File_helloworld_proto protoreflect.FileDescriptorvar file_helloworld_proto_rawDesc []byte{0x0a, 0x10, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x2e, 0x70, 0x72, 0x6f,0x74, 0x6f, 0x22, 0x22, 0x0a, 0x0c, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65,0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x26, 0x0a, 0x0a, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52,0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x31,0x0a, 0x07, 0x47, 0x72, 0x65, 0x65, 0x74, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x08, 0x53, 0x61, 0x79,0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x12, 0x0d, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71,0x75, 0x65, 0x73, 0x74, 0x1a, 0x0b, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c,0x79, 0x42, 0x09, 0x5a, 0x07, 0x2e, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72,0x6f, 0x74, 0x6f, 0x33, }var (file_helloworld_proto_rawDescOnce sync.Oncefile_helloworld_proto_rawDescData file_helloworld_proto_rawDesc )func file_helloworld_proto_rawDescGZIP() []byte {file_helloworld_proto_rawDescOnce.Do(func() {file_helloworld_proto_rawDescData protoimpl.X.CompressGZIP(file_helloworld_proto_rawDescData)})return file_helloworld_proto_rawDescData }var file_helloworld_proto_msgTypes make([]protoimpl.MessageInfo, 2) var file_helloworld_proto_goTypes []interface{}{(*HelloRequest)(nil), // 0: HelloRequest(*HelloReply)(nil), // 1: HelloReply } var file_helloworld_proto_depIdxs []int32{0, // 0: Greeter.SayHello:input_type - HelloRequest1, // 1: Greeter.SayHello:output_type - HelloReply1, // [1:2] is the sub-list for method output_type0, // [0:1] is the sub-list for method input_type0, // [0:0] is the sub-list for extension type_name0, // [0:0] is the sub-list for extension extendee0, // [0:0] is the sub-list for field type_name }func init() { file_helloworld_proto_init() } func file_helloworld_proto_init() {if File_helloworld_proto ! nil {return}if !protoimpl.UnsafeEnabled {file_helloworld_proto_msgTypes[0].Exporter func(v interface{}, i int) interface{} {switch v : v.(*HelloRequest); i {case 0:return v.statecase 1:return v.sizeCachecase 2:return v.unknownFieldsdefault:return nil}}file_helloworld_proto_msgTypes[1].Exporter func(v interface{}, i int) interface{} {switch v : v.(*HelloReply); i {case 0:return v.statecase 1:return v.sizeCachecase 2:return v.unknownFieldsdefault:return nil}}}type x struct{}out : protoimpl.TypeBuilder{File: protoimpl.DescBuilder{GoPackagePath: reflect.TypeOf(x{}).PkgPath(),RawDescriptor: file_helloworld_proto_rawDesc,NumEnums: 0,NumMessages: 2,NumExtensions: 0,NumServices: 1,},GoTypes: file_helloworld_proto_goTypes,DependencyIndexes: file_helloworld_proto_depIdxs,MessageInfos: file_helloworld_proto_msgTypes,}.Build()File_helloworld_proto out.Filefile_helloworld_proto_rawDesc nilfile_helloworld_proto_goTypes nilfile_helloworld_proto_depIdxs nil } 以及 helloworld_grpc.pb.go // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 // - protoc v4.25.3 // source: helloworld.protopackage protoimport (context contextgrpc google.golang.org/grpccodes google.golang.org/grpc/codesstatus google.golang.org/grpc/status )// This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. // Requires gRPC-Go v1.32.0 or later. const _ grpc.SupportPackageIsVersion7const (Greeter_SayHello_FullMethodName /Greeter/SayHello )// GreeterClient is the client API for Greeter service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tabdoc#ClientConn.NewStream. type GreeterClient interface {SayHello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloReply, error) }type greeterClient struct {cc grpc.ClientConnInterface }func NewGreeterClient(cc grpc.ClientConnInterface) GreeterClient {return greeterClient{cc} }func (c *greeterClient) SayHello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloReply, error) {out : new(HelloReply)err : c.cc.Invoke(ctx, Greeter_SayHello_FullMethodName, in, out, opts...)if err ! nil {return nil, err}return out, nil }// GreeterServer is the server API for Greeter service. // All implementations should embed UnimplementedGreeterServer // for forward compatibility type GreeterServer interface {SayHello(context.Context, *HelloRequest) (*HelloReply, error) }// UnimplementedGreeterServer should be embedded to have forward compatible implementations. type UnimplementedGreeterServer struct { }func (UnimplementedGreeterServer) SayHello(context.Context, *HelloRequest) (*HelloReply, error) {return nil, status.Errorf(codes.Unimplemented, method SayHello not implemented) }// UnsafeGreeterServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to GreeterServer will // result in compilation errors. type UnsafeGreeterServer interface {mustEmbedUnimplementedGreeterServer() }func RegisterGreeterServer(s grpc.ServiceRegistrar, srv GreeterServer) {s.RegisterService(Greeter_ServiceDesc, srv) }func _Greeter_SayHello_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {in : new(HelloRequest)if err : dec(in); err ! nil {return nil, err}if interceptor nil {return srv.(GreeterServer).SayHello(ctx, in)}info : grpc.UnaryServerInfo{Server: srv,FullMethod: Greeter_SayHello_FullMethodName,}handler : func(ctx context.Context, req interface{}) (interface{}, error) {return srv.(GreeterServer).SayHello(ctx, req.(*HelloRequest))}return interceptor(ctx, in, info, handler) }// Greeter_ServiceDesc is the grpc.ServiceDesc for Greeter service. // Its only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) var Greeter_ServiceDesc grpc.ServiceDesc{ServiceName: Greeter,HandlerType: (*GreeterServer)(nil),Methods: []grpc.MethodDesc{{MethodName: SayHello,Handler: _Greeter_SayHello_Handler,},},Streams: []grpc.StreamDesc{},Metadata: helloworld.proto, } 尝试编写业务逻辑这里应该写在handler中由于业务过于简单先写在server中 server.go 注意这里 grpc 帮我们处理了服务器不能连续被访问的问题不需要我们手动通过一个死循环进行处理 package mainimport (contextnetgoogle.golang.org/grpcFirstGo/goon/grpc_test/proto )type Server struct{}// 业务逻辑 // 第一个参数必须是contexterror必须加 func (s *Server) SayHello(ctx context.Context, request *proto.HelloRequest) (*proto.HelloReply, error) {return proto.HelloReply{Message: hello request.Name,}, nil }func main() {g : grpc.NewServer()proto.RegisterGreeterServer(g, Server{})lis, err : net.Listen(tcp, 0.0.0.0:8080)if err ! nil {panic(failed to listen: err.Error())}err g.Serve(lis)if err ! nil {panic(failed to start grpc: err.Error())} } 编写客户端 client.go package mainimport (FirstGo/goon/grpc_test/protocontextfmtgoogle.golang.org/grpc )func main() {// 尝试拨号conn, err : grpc.Dial(127.0.0.1:8080, grpc.WithInsecure())if err ! nil {panic(err)}defer conn.Close()// 创建客户端c : proto.NewGreeterClient(conn)// 调用对应的方法r, err : c.SayHello(context.Background(), proto.HelloRequest{Name: Chen})if err ! nil {panic(err)}fmt.Println(r.Message) } GRPC的四种数据传输模式 RPC 还具有四种数据模式其分别是 简单模式上述模式 客户端发起一次请求服务器返回一次响应 服务端数据流模式 客户发起一次请求服务器返回一段连续的数据流最典型的例子是客户发送一段股票代码服务端实时将股票的数据源源不断的返回给客户端 客户端数据流模式 与服务端数据流模式相反这种是由客户端源源不断的向服务端发送数据流在发送结束后由服务端发送一个响应这种的典型例子是物联网终端向服务器报送数据 双向数据流模式 这种是客户端和服务端都可以向双方发送数据流这个时候双方的数据都可以相互发送也就是可以实时交互这种最典型的例子就是聊天机器人 实际测试 建立文件结构 stream_grpc_test server server.go client client.go proto stream.pb.gp stream.proto stream_grpc.pb.go stream.proto syntax proto3;option go_package .;proto;service Greeter {rpc GetStream(StreamReqData) returns (stream StreamResData); // 服务端流模式返回的响应数据是流rpc PutStream(stream StreamReqData) returns (StreamResData); // 客户端流模式传给服务器的数据是流rpc AllStream(stream StreamReqData) returns (stream StreamResData); // 双向流模式 }message StreamReqData {string data 1; }message StreamResData {string data 1; }服务端流模式简单使用 只写了 服务端流模式的 server,go const PORT :50052type server struct { }// 对于服务端数据传输模式参考以下内容 // 没有 context 参数而是将返回作为入参传入 func (s *server) GetStream(req *proto.StreamReqData, res proto.Greeter_GetStreamServer) error {i : 0for {i_ res.Send(proto.StreamResData{Data: fmt.Sprintf(%v, time.Now().Unix()),})time.Sleep(time.Second)if i 10 {break}}return nil }// 客户端数据流模式 // 只有一个用来不断接收的入参 func (s *server) PutStream(cliStr proto.Greeter_PutStreamServer) error {return nil }// 双向数据流模式和客户端模式相同只有一个入参 func (s *server) AllStream(allStr proto.Greeter_AllStreamServer) error {return nil }func main() {lis, err : net.Listen(tcp, PORT)if err ! nil {panic(err)}s : grpc.NewServer()proto.RegisterGreeterServer(s, server{})s.Serve(lis)}只针对于服务端流的client.go func main() {// 拨号conn, err : grpc.Dial(localhost:50052, grpc.WithInsecure())if err ! nil {panic(err)}defer conn.Close()c : proto.NewGreeterClient(conn)// 这里要注意我们在进行调用的时候使用的仍让是 simple 的模式而不是服务端的函数模式res, _ : c.GetStream(context.Background(), proto.StreamReqData{Data: Chen})// 使用一个死循环来接收客户端传进来的数据for {a, err : res.Recv()if err ! nil {fmt.Println(err)break}fmt.Println(a)} }客户端流模式的简单使用 server.go package mainimport (FirstGo/goon/stream_grpc_test/protofmtgoogle.golang.org/grpcnettime )const PORT :50052type server struct { }// 对于服务端数据传输模式参考以下内容 // 没有 context 参数而是将返回作为入参传入 func (s *server) GetStream(req *proto.StreamReqData, res proto.Greeter_GetStreamServer) error {i : 0for {i_ res.Send(proto.StreamResData{Data: fmt.Sprintf(%v, time.Now().Unix()),})time.Sleep(time.Second)if i 10 {break}}return nil }// 客户端数据流模式 // 只有一个用来不断接收的入参 func (s *server) PutStream(cliStr proto.Greeter_PutStreamServer) error {// 客户端流模式客户端不断的发送数据给服务器for {if a, err : cliStr.Recv(); err ! nil {fmt.Println(err)} else {fmt.Println(a.Data)}}return nil }// 双向数据流模式和客户端模式相同只有一个入参 func (s *server) AllStream(allStr proto.Greeter_AllStreamServer) error {return nil }func main() {lis, err : net.Listen(tcp, PORT)if err ! nil {panic(err)}s : grpc.NewServer()proto.RegisterGreeterServer(s, server{})s.Serve(lis)} client.go package mainimport (FirstGo/goon/stream_grpc_test/protocontextfmtgoogle.golang.org/grpctime )func main() {// 拨号conn, err : grpc.Dial(localhost:50052, grpc.WithInsecure())if err ! nil {panic(err)}defer conn.Close()c : proto.NewGreeterClient(conn)putS, _ : c.PutStream(context.Background())i : 0for {iputS.Send(proto.StreamReqData{Data: fmt.Sprintf(Chen %d, i)})time.Sleep(time.Second)if i 10 {break}} }双向流模式的简单使用 server.go package mainimport (FirstGo/goon/stream_grpc_test/protofmtgoogle.golang.org/grpcnetsynctime )const PORT :50052type server struct { }// 对于服务端数据传输模式参考以下内容 // 没有 context 参数而是将返回作为入参传入 func (s *server) GetStream(req *proto.StreamReqData, res proto.Greeter_GetStreamServer) error {i : 0for {i_ res.Send(proto.StreamResData{Data: fmt.Sprintf(%v, time.Now().Unix()),})time.Sleep(time.Second)if i 10 {break}}return nil }// 客户端数据流模式 // 只有一个用来不断接收的入参 func (s *server) PutStream(cliStr proto.Greeter_PutStreamServer) error {// 客户端流模式客户端不断的发送数据给服务器for {if a, err : cliStr.Recv(); err ! nil {fmt.Println(err)} else {fmt.Println(a.Data)}}return nil }// 双向数据流模式和客户端模式相同只有一个入参 func (s *server) AllStream(allStr proto.Greeter_AllStreamServer) error {// 不可以像下面这样简单使用因为 Recv() 会阻塞主线程//allStr.Recv()//allStr.Send()wg : sync.WaitGroup{}wg.Add(2) // 添加两个等待线程go func() {defer wg.Done()for {data, _ : allStr.Recv()fmt.Println(收到客户端消息 data.Data)}}()go func() {defer wg.Done()for {_ allStr.Send(proto.StreamResData{Data: 我是服务器})time.Sleep(time.Second)}}()wg.Wait()return nil }func main() {lis, err : net.Listen(tcp, PORT)if err ! nil {panic(err)}s : grpc.NewServer()proto.RegisterGreeterServer(s, server{})s.Serve(lis)} client.go: package mainimport (FirstGo/goon/stream_grpc_test/protocontextfmtgoogle.golang.org/grpcsynctime )func main() {// 拨号conn, err : grpc.Dial(localhost:50052, grpc.WithInsecure())if err ! nil {panic(err)}defer conn.Close()c : proto.NewGreeterClient(conn)// // 这里要注意我们在进行调用的时候使用的仍让是 simple 的模式而不是服务端的函数模式// 服务端模式的客户端//res, _ : c.GetStream(context.Background(), proto.StreamReqData{Data: Chen})// // 使用一个死循环来接收客户端传进来的数据//for {// a, err : res.Recv()// if err ! nil {// fmt.Println(err)// break// }// fmt.Println(a)//}// 客户端数据流模式//putS, _ : c.PutStream(context.Background())//i : 0//for {// i// putS.Send(proto.StreamReqData{Data: fmt.Sprintf(Chen %d, i)})// time.Sleep(time.Second)// if i 10 {// break// }//}// 双向流模式allStr, _ : c.AllStream(context.Background())wg : sync.WaitGroup{}wg.Add(2) // 添加两个等待线程go func() {defer wg.Done()for {data, _ : allStr.Recv()fmt.Println(收到客户端消息 data.Data)}}()go func() {defer wg.Done()for {_ allStr.Send(proto.StreamReqData{Data: 我是Chen (客户端)})time.Sleep(time.Second)}}()wg.Wait() }

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

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

相关文章

US$34.2 KEYDIY KD B10-4 Universal Flip Remote Key 3+1 Buttons for Honda Type 5pcs/lot

KEYDIY KD B10-4 Universal Flip Remote Key 3+1 Buttons for Honda Type 5pcs/lotProduct Specifications:Manufacturer: KEYDIY Condition: New Color: Black Buttons: 4 Panic: Yes Transponder: No Proximity / Sm…

福州全网网站建设揭阳企业网页制作公司

手里有块netduino的板子,一直闲置未用,netduino具体是什么不知道的就百度吧,我这也不是主要讲netduino开发的,简单说就是用.net开发硬件,了解到netduino也是原来学过C#,当然我主要的工作还是嵌入式硬件开发…

做网站一般要了解哪些广州手机网站建设公司哪家好

在调试RK3288 Android 8.1系统遇到一个问题:开机启动uboot logo过渡到kernel log的过程中会花掉直到没有显示,再出现kernel logo。分析:打印串口log时发现,uboot阶段显示一切正常,进入kernel以后就开始花掉了然后变成没…

投标网站怎么做新泰做网站

原文地址:http://blog.csdn.net/zuochanxiaoheshang/article/details/8769198 点击阅读原文 --------------------------------------------------- Hadoop 控制输出文件命名 在一般情况下,Hadoop 每一个 Reducer 产生一个输出文件,文件以 …

《无垠的太空(2)卡利班之战》电子书素材征集

《无垠的太空(2)卡利班之战》电子书素材征集《无垠的太空(2)卡利班之战》电子书素材征集 “太空无垠”(又叫“苍穹浩瀚”)系列的第二部《卡利班之战》中文版纸质书已经出了,我想制作成电子书,哪位有pdf可以发下。或…

20251006 之所思 - 人生如梦

20251006 之所思10月6日早上9点起来,一直计划刷牙洗脸后去学英语,但是沉迷于短视频,浪费两个小时,越刷越浮躁,越刷越焦虑。浮躁是因为即时满足之后的空虚感,焦虑是因为自己计划了很多事情,但是因为一直刷手机没…

C# Avalonia 16- Animation- RotateButton

C# Avalonia 16- Animation- RotateButtonRotateButton.axaml代码<Window xmlns="https://github.com/avaloniaui"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http…

US$78.85 KEYDIY KD ZB42-4 Universal Smart Remote Key 3+1 Buttons for Lexus Type 5pcs/lot

KEYDIY KD ZB42-4 Universal Smart Remote Key 3+1 Buttons for Lexus Type 5pcs/lotProduct Specifications:Manufacturer: KEYDIY Condition: New Color: Black Buttons: 4 Panic: Yes Transponder - ID: Without Tr…

2025 十一集训

/Day 1:\(2^{cn}(c<1)\) 专题选讲

详细介绍:python第31天打卡

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

US$78.85 KEYDIY KD ZB33-4 Universal Smart Remote Key 3+1 Buttons for Hyundai Type 5pcs/lot

KEYDIY KD ZB33-4 Universal Smart Remote Key 3+1 Buttons for Hyundai Type 5pcs/lotProduct Specifications:Manufacturer: KEYDIY Condition: New Color: Brown Buttons: 4 Panic: Yes Transponder - ID: Without …

Python 的 LEGB 作用域

Python 的 LEGB 作用域在 Python 的 LEGB 作用域规则中,整数(或其他变量)所处的位置取决于它的定义位置,LEGB 代表四种作用域类型,优先级从高到低为:L(Local,局部作用域) 函数内部定义的变量(包括函数参数)…

在Windows下使用lucky更新动态域名

在Windows下使用lucky更新动态域名2024.06.032.15版本之后DDNS配置进行了较大的更新 配置不再向后兼容 若进行降级 DDNS配置会丢失 配置方法详见新教程:链接关于本教程 lucky内置的DDNS功能 支持多家DDNS提供商 也允许…

20251005 模拟测 总结

\(\mathcal{Preface}\) 分数分布:\(100+100+100+100= 400\)。 AK 了,开心呀! \(\mathcal{Problem \space{} A}\) Tag:诈骗,排序,贪心。 赛时看到题,一下子没反应过来,以为是超难 DP 题。 过了 B & C 之后回…

chatjs.langchain

chatjs.langchain https://chatjs.langchain.com/ https://github.com/langchain-ai/chat-langchain Chat LangChain This repo is an implementation of a chatbot specifically focused on question answering over …

完整教程:Microsoft Word使用技巧分享(本科毕业论文版)

完整教程:Microsoft Word使用技巧分享(本科毕业论文版)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consola…

旅游网站建设的参考文献稻壳ppt模板免费下载

文章目录 vite的proxy开发环境设置如果后端没有提供可以替换的/mis等可替换的后缀的处理办法接口如何区分.env.development开发和.env.production生产环境接口在生产环境下&#xff0c;还能使用proxy代理地址吗&#xff1f; vite的proxy开发环境设置 环境&#xff1a; vite 4…

(转)The Ten Commandments of Digital Cotrol(Part1)

(转)The Ten Commandments of Digital Cotrol(Part1)Dave Wilson, Motion Products Evangelist, Texas InstrumentsDespite the fact that I now work for the Microcontroller Division of Texas Instruments; de…

河南省大型项目建设办公室网站500页面 wordpress

说明&#xff1a; 面试题来源于网络书籍&#xff0c;公司题目以及博主原创或修改&#xff08;题目大部分来源于各种公司&#xff09;&#xff1b;文中很多题目&#xff0c;或许大家直接编译器写完&#xff0c;1分钟就出结果了。但在这里博主希望每一个题目&#xff0c;大家都要…

手机访问跳转手机网站环保网站策划书

企业客户信息反馈平台 目录 基于SprinBootvue的企业客户信息反馈平台 一、前言 二、系统设计 三、系统功能设计 1平台功能模块 2后台登录 5.2.1管理员功能 5.2.2客户功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&am…